Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 - Fatal编程技术网

java子字符串是否可以在超出范围的索引上运行?

java子字符串是否可以在超出范围的索引上运行?,java,string,Java,String,这是一个经验证的可运行且正确的doe。它颠倒了句子的语序 但是这条线 public class Main { public static String reverseWords(String s) { StringBuilder reversed = new StringBuilder(); int j = s.length(); for (int i = s.length() - 1; i >= 0; i--) {

这是一个经验证的可运行且正确的doe。它颠倒了句子的语序

但是这条线

public class Main {


    public static String reverseWords(String s) {
        StringBuilder reversed = new StringBuilder();
        int j = s.length();
        for (int i = s.length() - 1; i >= 0; i--) {
            if (s.charAt(i) == ' ') {
                j = i;
            } else if (i == 0 || s.charAt(i - 1) == ' ') {
                if (reversed.length() != 0) {
                    reversed.append(' ');
                }
                reversed.append(s.substring(i, j));
            }
        }
        return reversed.toString();
    }

    public static void main(String[] args) {

        String str = "sky is blue";
        String retStr = reverseWords(str);
        System.out.println(retStr);

    }
}
它将在第一时间被称为s.substring(7,11),s是“天空是蓝色的”。 所以你可以看到索引7是“b”,但索引11在“e”之后

在c++中,我知道这个问题。但是为什么在Java中,它是好的呢?太困惑了。 我检查了java文档,它说substring()接受开始和结束索引。 我现在不知道

需要帮助吗
感谢

子字符串从指定的beginIndex开始,并扩展到索引endIndex-1处的字符。

“java子字符串可以在超出范围的索引上运行吗?”不,它不能。因为这是来自文档的直接引用,您应该放一个指向它们的链接。
 reversed.append(s.substring(i, j));