我怎样才能从一个类似的东西中获得三个子串?#34;我是50"?我必须扭转它("我早上50点")但只需要知道范围是什么(不是有效的范围,如"从3到5"或类似因为单词可能会有所不同) 。谢谢。
ss1 = string.substring(0, index); // index = " ";
ss2 = string.substring(index+1, **?** );
ss3 = string.substring( **?** , string.length());
答案 0 :(得分:1)
示例代码:
String str = "I am 50";
String[] array = str.split("\\s+");
StringBuffer buffer = new StringBuffer();
for (int i = array.length - 1; i >= 0; i--) {
buffer.append(" ").append(array[i]);
}
String reverse = buffer.substring(1);
答案 1 :(得分:0)
你可以使用string.split(""),它会返回一个字符串数组 - 单个单词。然后你可以反转数组并计算范围
答案 2 :(得分:0)
我会在这里使用String#split(String)
函数。
您可以做的是致电string.split(" ");
,这会将字符串拆分为独立的字词。然后,您可以反转数组。
String str = "I am 50";
StringBuilder builder = new StringBuilder(str.length);
String[] words = str.split(" ");
for(int i = words.length - 1; i >= 0; i--){
builder.append(words[i]);
builder.append(' ');
}
String result = builder.toString().trim();
答案 3 :(得分:0)
如果您不反对使用Apache Commons ArrayUtils
和StringUtils
类,那么这是最短的方式
String[] words = string.split("\\s");
ArrayUtils.reverse(words);
System.out.println(StringUtils.join(words," "));