这道题的算法思想是把字符串1中的每个字符与字符串2中的每个字符进行比较,遇到共同拥有的字符,放入另一个数组中,最后顺序输出即可
但是这道题的难点在于怎么排除重复的字符
public class bothChar { public static String bothChar(String str1,String str2){ StringBuffer sb = new StringBuffer(); int n1,n2,m=0; //char a[]=new char[50]; n1=str1.length(); n2=str2.length(); if(str1!=null){//获取字符串1中的每个字符 for(int i=0;i<n1;i++){ char c = str1.charAt(i); } } //获取字符串2中的每个字符 if(str2!=null){//获取字符串1中的每个字符 for(int j=0;j<n2;j++){ char d = str2.charAt(j); } } //两个字符串中的字符一一进行比较 for(int i=0;i<n1;i++){ m=0; for(int j=0;j<n2;j++){ if(str1.charAt(i)==str2.charAt(j)&&m==0){ sb.append(str1.charAt(i)); m=1; } } } return sb.toString(); } }
解决方法:在内循环之前设置标志位m,若m=0,说明该字符并未在字符串2中出现过,然后进行内循环,内循环中把m=1,这样就可以排除某一个字符串中出现重复字符的现象,具体代码附上,供大家参考
时间: 2024-10-12 18:36:05