我有一个像这样的字符串:
"I have 2 friends: (i) ABC (ii) XYZ"
现在如何显示:
I have 2 friends:
(i) ABC
(ii) XYZ
我正在动态显示数据,所以我必须检查字符串是否包含:(冒号)。
我试过这样string.contains(":")
,但我没有得到进一步的进展?
答案 0 :(得分:3)
String s = "I have 2 friends: (i) ABC (ii) XYZ";
s = s.replace(':',':\n');
s = s.replace('(','\n(');
(不是一般化的解决方案,但假设你的“朋友列表”格式是不变的,冒号表示列表的存在......你可以用if(s.contains(':')){.. 。}阻止,如果需要)
答案 1 :(得分: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
答案 2 :(得分: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)));
答案 3 :(得分: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 documentation以了解所有字符串操作需求! (在Java内)