用java找出两个字符串中的相同的字符??
找出两个字符串中所有相同的字符。麻烦高手帮个忙,在线等答案!!!! 展开
代码如下:
运行结果如下:
以下是文字版的代码:
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
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'同时出现在了两个字符串。 ----------上面没有写代码,但是将所有的顺序都写出来了,希望你能看懂。