0

私は文字列を持っています

String s = "#@#:g#@# hello #@#:(#@# How are You";

#@#:g#@# は絵文字のコードです。同様の次の #@#:(#@# は別のコードです。

現在、私の文字列には #@# で始まり #@# で終わるいくつかのコードがあります。ここで、#@# で始まり #@# で終わるすべての部分文字列を別の文字列 "(emotions)" に置き換える必要があります。

Input String = "#@#:g#@# hello  #@#:(#@# How are you";
Output String  = "(emotions) hello (emotions) How are You".

私はこのコードを試しました

System.out.println("Original String is = "+s);
    if(s.contains("#@#"))
    {
        //int startIndex = s.substring(beginIndex, endIndex)
        int index = s.indexOf("#@#");
        while (index >= 0) {
            System.out.println("index is == "+index);
            arr.add(index);
            index = s.indexOf("#@#", index + 1);
        }

        for(int i = 0 ; i<arr.size() ; i=i+2)
        {
            int startIndex = arr.get(i);
            int secondIndex = arr.get(i+1);
            System.out.println("StartIndex is == "+startIndex);
            System.out.println("SecondIndex is == "+secondIndex);

            String s1 = s.substring(startIndex,secondIndex+3);

            System.out.println("String to be replaced is == "+s1.toString());
            s.replace(s1, "(emotions)");             //\"(emotions)\"
            System.out.println("String  == "+s.toString());
        }
    }

    System.out.println("Final String is == "+s.toString());
}

私を助けてください。

4

6 に答える 6

0

このようにしてみてください:--

String s = "#@#:g#@# hello #@#:(#@# How are You";
        String s1=s.replace("#@#:g#@#", "(emotions)");
        String s2=s1.replace("#@#:(#@#", "(emotions)");
        System.out.println(s2);
于 2013-10-22T10:23:59.110 に答える
0

分割方法を使用します。

String line = "#@#:g#@# hello #@#:(#@# How are You";
String tokens[] = line.split("#@#");
for(String token: tokens){
    System.out.println(token);
    if(token.equals(":g")){
         // replace with emoticon
    }
    ....
}
于 2013-10-22T10:19:21.130 に答える
0
  • まず、スペースを配列に分割する必要があります。
  • 出力として新規作成Stringします。
  • 次に、配列を反復処理し、if item(i).contains("#@#")->output+="(emotions) " else output += item(i)"#@#"

それが役に立てば幸い

于 2013-10-22T10:07:17.840 に答える
0

これにより、「#@#{xx}#@#」が「(感情)」に置き換えられます。{xx} は厳密に任意の 2 文字です。

"#@#:g#@# hello  #@#:(#@# How are you".replaceAll("#@#.{2}#@#", "(emotions)");

Input : #@#:g#@# hello  #@#:(#@# How are you
Output: (emotions) hello  (emotions) How are you
于 2013-10-22T10:34:55.993 に答える