Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
子字符串范围(Java)_Java_String_Substring - Fatal编程技术网

子字符串范围(Java)

子字符串范围(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

我怎么能从一个类似“我50岁”的子串中得到三个子串呢?我必须反转它(“我是50岁”),但只需要知道范围是如何的(不是有效的范围,如“从3到5”或类似的,因为单词可能会有所不同)。多谢各位

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," "));