求 方法 String[] f(String aStrA,String aStrB),
f("不要ABCD1234EFGH5678","必要ABCD0000EFGH1111")={"不要","1234","5678"}
f("必要ABCD0000EFGH1111","不要ABCD1234EFGH5678")={"必要","0000","1111"}

解决方案 »

  1.   


    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;
    }
    }
    楼主,你是要找不同的吧
    “要”字是相同的所以“要”字给忽略了
      

  2.   

    LZ,你的意思是这样的吧。。根据前一个字符串,将它与后一个字符串匹配,找出前一个字符串与后一个字符串不同的部分(不包括前2个汉字)。。将2楼的F方法修改下,将前2个汉字取到,就可以得到LZ你所需要的代码了。。
      

  3.   

    揭帖了,我自己搞定了,谢谢大家了,不过分还是要给的
    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;
    }