1

私はこのような文字列を持っています:

"I have 2 friends: (i) ABC (ii) XYZ"

次のように表示する方法:

I have 2 friends:

(i) ABC
(ii) XYZ

データを動的に表示しているので、文字列に:(コロン)が含まれているかどうかを確認する必要があります。

私はこのようにしようとしましstring.contains(":")たが、それ以上進む方法がわかりませんか?

4

4 に答える 4

3
String s = "I have 2 friends: (i) ABC (ii) XYZ";
s = s.replace(':',':\n');
s = s.replace('(','\n(');

(一般化された解決策ではありませんが、「友達のリスト」のフォーマットが一定であり、コロンがリストの存在を示していると仮定します... if(s.contains(':')){ ... } ブロックでラップできます必要に応じて)

于 2013-02-22T19:37:33.367 に答える
2

これを取得するには、StringクラスのindexOfメソッドとsubstringメソッドを使用できます。

System.out.println(str.substring(0, str.indexOf('(', 0)));
System.out.println();
System.out.println(str.substring(str.indexOf('(', 0), str.indexOf('(', str.indexOf('(', 0) + 1)));
System.out.println(str.substring(str.indexOf('(', str.indexOf('(', 0) + 1)));
于 2013-02-22T19:48:28.200 に答える
2
String s = "I have 2 friends: (i) ABC (ii) XYZ";
String [] parts = s.split (":");
System.out.println (parts [0]);
System.out.println ();
Matcher m = Pattern.compile ("\\([^)]+\\)[^(]*").matcher (parts [1]);
while (m.find ()) System.out.println (m.group ());

出力は次のとおりです。

I have 2 friends

(i) ABC 
(ii) XYZ
于 2013-02-22T19:37:10.990 に答える
0

以下は、特定の問題を解決します。

String str = "I have 2 friends: (i) ABC (ii) XYZ";

int indexOfColon = str.indexOf(":");
int lastIndexOfOpenParenthesis = str.lastIndexOf("(");

String upToColon = str.substring(0, indexOfColon);
String firstListItem = str.substring(indexOfColon + 1, lastIndexOfOpenParenthesis);
String secondListItem = str.substring(lastIndexOfOpenParenthesis);

String resultingStr = upToColon + "\n\n" + firstListItem + "\n" + secondListItem;

すべての文字列操作のニーズについては、java.lang.String のドキュメントを参照してください。(Java内)

于 2013-02-22T19:47:48.623 に答える