子字符串范围(Java)
我怎么能从一个类似“我50岁”的子串中得到三个子串呢?我必须反转它(“我是50岁”),但只需要知道范围是如何的(不是有效的范围,如“从3到5”或类似的,因为单词可能会有所不同)。多谢各位子字符串范围(Java),java,string,substring,Java,String,Substring,我怎么能从一个类似“我50岁”的子串中得到三个子串呢?我必须反转它(“我是50岁”),但只需要知道范围是如何的(不是有效的范围,如“从3到5”或类似的,因为单词可能会有所不同)。多谢各位 ss1 = string.substring(0, index); // index = " "; ss2 = string.substring(index+1, **?** ); ss3 = string.substring( **?** , string.length()); 您可以使用string.sp
ss1 = string.substring(0, index); // index = " ";
ss2 = string.substring(index+1, **?** );
ss3 = string.substring( **?** , string.length());
您可以使用string.split(“”),它返回一个字符串数组-单个单词。然后您可以反转数组并计算范围我将在这里使用
String#split(String)
函数
您可以做的是调用string.split(“”)
将字符串拆分为独立的单词。然后,只需反转阵列即可
应采取的步骤:
- 根据一个或多个空格拆分原始字符串
- 以相反的顺序重复每个单词
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);
如果您不反对使用apachecommons
ArrayUtils
和StringUtils
类,那么这是最短的方法
String[] words = string.split("\\s");
ArrayUtils.reverse(words);
System.out.println(StringUtils.join(words," "));
将条件更改为>0,将最后一个单词附加到循环之后,则无需修剪。
ss1=string.substring(0,index);//指数=”代码>-这肯定是错误的;索引不能是字符串吗?
String[] words = string.split("\\s");
ArrayUtils.reverse(words);
System.out.println(StringUtils.join(words," "));