如何找出两个字符串中相同的字符

RobinBest 2010-02-25 02:29:15
如题,两个字符串Lctext1和Lctext2,怎样找出它们相同的字符。(应该是:朋友的)

Lctext1="我们都是来自五湖四海的朋友"
Lctext2="朋友多了路真的好走吗"
...全文
293 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
sp4 2010-03-01
  • 打赏
  • 举报
回复
和循环计算每什么区别,只是确定相同是后处理与拆分后直接处理而已

所以和单个字符拆分的循环语句没有什么区别。

所以就效率而言没啥可说的。

LZ说的那个很直接,可能还是最好的方法....
daishaodong 2010-03-01
  • 打赏
  • 举报
回复
8楼的方法相当于就是把2行汉字distinct后,分别插入2个表,然后on条件
  • 打赏
  • 举报
回复
要我实现的话,就用来那个临时表来做了,表里面不是有连接吗
Barton 2010-02-26
  • 打赏
  • 举报
回复
study........................
diegoyu 2010-02-25
  • 打赏
  • 举报
回复
引用 9 楼 feixianxxx 的回复:
SQL code--ordeclare@Lctext1varchar(100),@Lctext2varchar(100),@svarchar(100)set@Lctext1='我们都是来自五湖四海的朋友'set@Lctext2='朋友多了路真的好走吗'SELECT@s=isnull(@s,'')+SUBSTRING(@Lctext2,number,1)from master..spt_values?-

老黎 2010-02-25
  • 打赏
  • 举报
回复
把两个字符串分开一个个字符插进两个表a、b里,然后连接查询,
where a.value = b.value
feixianxxx 2010-02-25
  • 打赏
  • 举报
回复
--or
declare @Lctext1 varchar(100),@Lctext2 varchar(100),@s varchar(100)
set @Lctext1='我们都是来自五湖四海的朋友'
set @Lctext2='朋友多了路真的好走吗'
SELECT @s=isnull(@s,'')+SUBSTRING(@Lctext2,number,1)
from master..spt_values
where type='p' and number <=LEN(@Lctext2)and CHARINDEX(SUBSTRING(@Lctext2,number,1),@Lctext1)>0
select @s as value
/*
value
-----
朋友的*/
playwarcraft 2010-02-25
  • 打赏
  • 举报
回复

declare @str1 nvarchar(100), @str2 nvarchar(100)
select @str1=N'我们都是来自五湖四海的朋友' ,
@str2=N'朋友多了路真的好走吗'

declare @str nvarchar(100)
select @str=isnull(@str,'')+ str1
from
(
SELECT
distinct SUBSTRING(@str1,number,1) AS [str1]
from master.dbo.spt_values
where type='p' AND number BETWEEN 1 AND LEN(@str1)
) A
inner join
(
SELECT
distinct SUBSTRING(@str2,number,1) AS [str2]
from master.dbo.spt_values
where type='p' AND number BETWEEN 1 AND LEN(@str2)
) B
on A.str1=B.str2

select @str
feixianxxx 2010-02-25
  • 打赏
  • 举报
回复
declare @Lctext1 varchar(100),@Lctext2 varchar(100)
set @Lctext1='我们都是来自五湖四海的朋友'
set @Lctext2='朋友多了路真的好走吗'

SELECT SUBSTRING(@Lctext2,number,1) as value
from master..spt_values
where type='p' and number <=LEN(@Lctext2)and CHARINDEX(SUBSTRING(@Lctext2,number,1),@Lctext1)>0
/*
value
-----


的*/
feixianxxx 2010-02-25
  • 打赏
  • 举报
回复
引用 3 楼 josy 的回复:
SQL codedeclare@s1varchar(200),@s2varchar(200),@svarchar(200)set@s=''set@s1='我们都是来自五湖四海的朋友'set@s2='朋友多了路真的好走吗'whilelen(@s1)>0beginifcharindex(left(@s1,1),@s2)>0beginset@s=@s+left(@s1,1)endset@s1=stuff?-

可行
RobinBest 2010-02-25
  • 打赏
  • 举报
回复
多谢3楼!不过你这方法也太"直接"了吧!随便懂点程序人都能想得到,请问还有没有更简单,确切的说有没有更高效的方法?
黄_瓜 2010-02-25
  • 打赏
  • 举报
回复
引用 3 楼 josy 的回复:
SQL codedeclare@s1varchar(200),@s2varchar(200),@svarchar(200)set@s=''set@s1='我们都是来自五湖四海的朋友'set@s2='朋友多了路真的好走吗'whilelen(@s1)>0beginifcharindex(left(@s1,1),@s2)>0beginset@s=@s+left(@s1,1)endset@s1=stuff?-

up
百年树人 2010-02-25
  • 打赏
  • 举报
回复
declare @s1 varchar(200),@s2 varchar(200),@s varchar(200)
set @s=''
set @s1='我们都是来自五湖四海的朋友'
set @s2='朋友多了路真的好走吗'

while len(@s1)>0
begin
if charindex(left(@s1,1),@s2)>0
begin
set @s=@s+left(@s1,1)
end
set @s1=stuff(@s1,1,1,'')
end

print @s
水族杰纶 2010-02-25
  • 打赏
  • 举报
回复
怪~~ '
黄_瓜 2010-02-25
  • 打赏
  • 举报
回复

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧