求 方法 String[] f(String aStrA,String aStrB),
f("不要ABCD1234EFGH5678","必要ABCD0000EFGH1111")={"不要","1234","5678"}
f("必要ABCD0000EFGH1111","不要ABCD1234EFGH5678")={"必要","0000","1111"}
f("不要ABCD1234EFGH5678","必要ABCD0000EFGH1111")={"不要","1234","5678"}
f("必要ABCD0000EFGH1111","不要ABCD1234EFGH5678")={"必要","0000","1111"}
package my.util;import java.util.*;public class Test7 {
public static void main(String[] args){
String[] strAs=new Test7().f("不要ABCD1234EFGH5678","必要ABCD0000EFGH1111");
String[] strBs=new Test7().f("必要ABCD0000EFGH1111","不要ABCD1234EFGH5678");
//打印
for(int i=0;i<strAs.length;i++){
System.out.println(strAs[i]);
}
//打印预览效果
for(int i=0;i<strBs.length;i++){
System.out.println(strBs[i]);
}
}
String[] f(String aStrA,String aStrB){
List strs=new ArrayList(); //定义一个List 存储不相同的值
String str=""; //用来存储不同字符
for(int i=0;i<=aStrA.length();i++){
if(i==aStrA.length()){
if(!str.equals("")){
strs.add(str); //添加一个不同字符
}
break;
}
String a=aStrA.substring(i,i+1); //每次获取一个字符进行逐个比较
String b=aStrB.substring(i,i+1);
if(a.equals(b)){
if(!str.equals("")){
strs.add(str); //添加一个不同字符
str=""; //清空str
}
continue;
}else{
str+=a;
}
}
//为了返回String[]重新装载,建议返回Object[] 那么直接return strs.toArray(),其实返回List也行;
String[] newArr=new String[strs.size()];
for(int i=0;i<strs.size();i++){
newArr[i]=strs.get(i).toString();
}
return newArr;
}
}
楼主,你是要找不同的吧
“要”字是相同的所以“要”字给忽略了
List f(String aStrA, String aStrB) {
byte[] bufA = aStrA.getBytes();
byte[] bufB = aStrB.getBytes();
List list = new Vector();
if (bufA.length != bufB.length) {
return list;
}
for (int index = 0; index < bufA.length; index++) {
bufA[index] -= bufB[index];
if (bufA[index] != 0) {
bufA[index] += bufB[index];
}
}
String str = new String(bufA);
byte[] buf = { 0x00 };
String[] ret = str.split(new String(buf));
for (int index = 0; index < ret.length; index++) {
str = ret[index];
if (str.length() != 0) {
list.add(str);
}
}
return list;
}