cari

Rumah  >  Soal Jawab  >  teks badan

java - 如何同时去掉两个字符串相同的地方?

比如我现在有

String a = "今天天气很好我叫小王";
String b = "今天天气很好我叫大吴";

运算后想得到

String a = "小王";
String b = "大吴";
巴扎黑巴扎黑2890 hari yang lalu386

membalas semua(6)saya akan balas

  • 迷茫

    迷茫2017-04-17 18:00:09

    public static void main(String[] args) throws UnsupportedEncodingException {
    
            String str = "今天气很好我叫小王";
            String str1 = "今天天气很好我叫大吴";
            String gy = "";
            String encode1 = convert(str);
            String encode2 = convert(str1);
            String[] split = encode1.replace("\", "-").split("-");
            for (int i = 0; i < split.length; i++) {
                String s = split[i];
                if (s != null && !"".equals(s)) {
                    if (encode2.indexOf("\" + split[i]) != -1) {
                        gy += "\" + split[i];
                    }
                }
            }
            System.out.println("公约字符串-----" + gy);
            System.out.println(decodeUnicode(gy));
        }
    
        public static String convert(String str) {
            str = (str == null ? "" : str);
            String tmp;
            StringBuffer sb = new StringBuffer(1000);
            char c;
            int i, j;
            sb.setLength(0);
            for (i = 0; i < str.length(); i++) {
                c = str.charAt(i);
                sb.append("\u");
                j = (c >>> 8); // 取出高8位
                tmp = Integer.toHexString(j);
                if (tmp.length() == 1)
                    sb.append("0");
                sb.append(tmp);
                j = (c & 0xFF); // 取出低8位
                tmp = Integer.toHexString(j);
                if (tmp.length() == 1)
                    sb.append("0");
                sb.append(tmp);
    
            }
            return (new String(sb));
        }
    
        public static String decodeUnicode(String theString) {
            char aChar;
            int len = theString.length();
            StringBuffer outBuffer = new StringBuffer(len);
            for (int x = 0; x < len;) {
                aChar = theString.charAt(x++);
                if (aChar == '\') {
                    aChar = theString.charAt(x++);
                    if (aChar == 'u') {
                        // Read the xxxx
                        int value = 0;
                        for (int i = 0; i < 4; i++) {
                            aChar = theString.charAt(x++);
                            switch (aChar) {
                            case '0':
                            case '1':
                            case '2':
                            case '3':
                            case '4':
                            case '5':
                            case '6':
                            case '7':
                            case '8':
                            case '9':
                                value = (value << 4) + aChar - '0';
                                break;
                            case 'a':
                            case 'b':
                            case 'c':
                            case 'd':
                            case 'e':
                            case 'f':
                                value = (value << 4) + 10 + aChar - 'a';
                                break;
                            case 'A':
                            case 'B':
                            case 'C':
                            case 'D':
                            case 'E':
                            case 'F':
                                value = (value << 4) + 10 + aChar - 'A';
                                break;
                            default:
                                throw new IllegalArgumentException(
                                        "Malformed   \uxxxx   encoding.");
                            }
                        }
                        outBuffer.append((char) value);
                    } else {
                        if (aChar == 't')
                            aChar = '\t';
                        else if (aChar == 'r')
                            aChar = '\r';
                        else if (aChar == 'n')
                            aChar = '\n';
                        else if (aChar == 'f')
                            aChar = '\f';
                        outBuffer.append(aChar);
                    }
                } else
                    outBuffer.append(aChar);
            }
            return outBuffer.toString();
        }

    balas
    0
  • 高洛峰

    高洛峰2017-04-17 18:00:09

    let a = "今天天气很好我叫小王";
    let b = "今天天气很好我叫大吴";
    
    [a, b] = (a + b).replace(/(.+)(.+)/, '\n').split('\n');
    
    console.log(a, b);

    Saya di sini untuk menyertai keseronokan, es6 bermakna tiada tekanan. . .

    balas
    0
  • PHP中文网

    PHP中文网2017-04-17 18:00:09

    Masalah padanan corak

    balas
    0
  • ringa_lee

    ringa_lee2017-04-17 18:00:09

    Jika ia seperti yang anda katakan:

    Selagi rentetan identik berturut-turut pertama dialih keluar, ia adalah yang terbaik

    Anda boleh melakukan ini:

        String a = "今天天气很好我叫小王";
        String b = "今天天气很好我叫大吴";
    
        int length = Math.min(a.length(), b.length());
        int pos = 0;
        while (pos < length) {
            if (0 != (a.charAt(pos) ^ b.charAt(pos))) {
                break;
            }
            pos++;
        }
        System.out.println(a.substring(pos));
        System.out.println(b.substring(pos));
    

    Untuk memenuhi permintaan yang lebih besar, ia mungkin perlu disebarkan lagi

    balas
    0
  • 怪我咯

    怪我咯2017-04-17 18:00:09

    Cuba idea ini. Lintas rentetan pertama, dan selepas mendapatkan aksara, tentukan sama ada rentetan kedua mengandunginya Jika rentetan itu berlaku, keluarkan semua aksara dalam dua rentetan.

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-17 18:00:09

    Sebenarnya, keperluan itu boleh dijelaskan dengan lebih jelas sedikit Jika dua rentetan itu ialah "Cuaca hari ini sangat baik dan nama saya Xiao Wang" dan "Cuaca hari ini sangat baik dan nama saya Da Wu dan dia Xiao. Abang Wang", apa yang patut diperoleh dalam kes ini?

    balas
    0
  • Batalbalas