用java找出两个字符串中的相同的字符??

两个字符串“welcometoZhuhai”,“comehere”找出两个字符串中所有相同的字符。麻烦高手帮个忙,在线等答案!!!!... 两个字符串“welcome to Zhuhai”,“come here”
找出两个字符串中所有相同的字符。麻烦高手帮个忙,在线等答案!!!!
展开
 我来答
枫神的天空
2015-07-27 · TA获得超过1746个赞
知道小有建树答主
回答量:329
采纳率:71%
帮助的人:255万
展开全部

代码如下:

运行结果如下:

以下是文字版的代码:

import java.util.Scanner;

public class Test {

public static void main(String[] args){

Scanner in=new Scanner(System.in);

String s1,s2;

try{

System.out.print("请输入第一个字符串:");

s1=in.nextLine();

System.out.print("请输入第二个字符串:");

s2=in.nextLine();

getSameChar(s1,s2);

}

catch(Exception e){

e.printStackTrace();

}

}

public static void getSameChar(String s1,String s2){

char c;//相同字符

char[] same=s1.toCharArray();//数组same用于控制:如果s1字符串中有相同的字符,则只输出一次

//如s1为aabc s2为a 则只输出1次a 而不是两次

int count=0,j;//与数组same相关的变量

int i,k;//循环变量

System.out.println(s1+"与"+s2+"相同的字符有");

for(i=0;i<s1.length();i++){

c=s1.charAt(i);

out:for(k=0;k<s2.length();k++){

if(c==(s2.charAt(k))){

for(j=0;j<count;j++){//如果字符c已经被打印过,则直接跳出循环,查找下一个

if(c==same[j])

break out;//跳出被out标记的循环

}//如果字符c是第一次出现,则把它添加进数组same

same[count]=c;

count++;

//如果字符c是第一次出现,将其打印出来

if(c==' '){

System.out.println("空格键");

break;

}

System.out.println(c);

break;

}

}

}

}

}

匿名用户
2013-08-09
展开全部
import java.util.*;
public class Test{

public static void main(String[]args)
{
test();
}
private static void test()
{
String str1="welcome to Zhuhai";
String str2="come here";
List<String> list=new ArrayList<String>();
for(int i=0;i<str1.trim().length();i++)
{
if(str1.charAt(i)==32)
continue;
for(int j=0;j<str2.trim().length();j++)
{
if(str1.charAt(i)==str2.charAt(j)&& !isExist(list,str1.substring(i, i+1)))
list.add(str1.substring(i,i+1));
}
}
display(list);
}
private static boolean isExist(List<String> list,String dest)
{
for(String s:list)
{
if(dest.equals(s))
return true;
}
return false;
}
private static void display(List<String> list)
{
for(String s:list)
{
System.out.println(s);
}
}}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-09
展开全部
不是找相同的字符串吧?如果是找字符串的话有点麻烦,但是只是要找相同的字符就很简单了。要代码?我只写思路可以不?
建立两个或者是一个map映射。这里用两个数组。int[100]count;char [100]c;//储存所有的字符,如果不够就将他简单一点,但是上面的count也必须和c一般大小。//初始化两个数组,count数组全为0,c数组为所有能出现在字符串中的字符。例如c[0]='a';count[0]=0;//然后将两个字符串处理成两个字符数组,也可以不处理,但是一定要能直接遍历每一个字符。//遍历第一个字符串,将出现的字符其所对应在count数组处的数据修改为1,如第一个字符串有'a',//那么count[0]=1;//遍历第二个字符串,同样将出现的字符在count数组所对应的位置的数据修改为"如果之前为1,则修改为2//如果之前不为1,则不变"。//然后遍历count数组,找出所有数值为2的,其所对应的c数组处所对应的字符便是两个字符串中相同的字符//如在第二字符串中也出现了'a',并且count[0]==1,那么修改count[0]=2;这样在遍历count时,count[0]==2,//则c[0]是两字符串中相同的字符,也就是说'a'同时出现在了两个字符串。 ----------上面没有写代码,但是将所有的顺序都写出来了,希望你能看懂。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式