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

Java 单字子串法

Java 单字子串法,java,Java,我很难确定为什么返回子字符串时总是使用。当单个单词通过时,例如化学,我得到如下结果: C h e m i s t r y 然后打印一个空行作为的子字符串值 public String NextString(String lstring){ String substring=""; int i=0; while (lstring.charAt(i)!=' ') { System.out.println(lstring.charAt(i))

我很难确定为什么返回子字符串时总是使用。当单个单词通过时,例如化学,我得到如下结果:

 C
 h
 e
 m
 i
 s
 t
 r
 y
然后打印一个空行作为的子字符串值

public String NextString(String lstring){
    String substring="";
    int i=0;
    while (lstring.charAt(i)!=' ') {
        System.out.println(lstring.charAt(i));
        substring.concat(Character.toString(lstring.charAt(i)));
        i++;
    }
    System.out.println(substring);
    return substring;
}

请帮忙

您从未重新分配连接的字符串。请尝试以下方法:

substring = substring.concat(Character.toString(lstring.charAt(i)));

引用:

java中的字符串是不可变的,当您分配它时,您不能再次更改其中的值 为此,Devendra Lattu说,每次将新字符连接到变量时,都需要分配连接的输出

substring=substring.concat(Character.toString(lstring.charAt(i)));
如果您不喜欢这样,可以使用Java8中的StringJoiner,因为它速度更快,而且是可变的
对于第一个答案,我很抱歉:

您的子字符串未被打印的原因,因为当您进行串联时,您没有将其存储在子字符串中,因此循环结束时,子字符串仍然为空。 尝试以下更改:

String substring="";
int i=0;
while (lstring.charAt(i)!=' ') {
    System.out.println(lstring.charAt(i));
    substring=substring.concat(Character.toString(lstring.charAt(i)));
    i++;
}
System.out.println(substring);
return substring;

字符串对象是不可变的。因此,concat不会更改子字符串,而是返回一个已更改的字符串。因此你需要

substring = substring.concat(...
除此之外:您希望迭代该字符串的字符。你绝对不需要那个复杂的while循环。而是在此处使用for each循环样式:

for (char singleChar : lstring.getCharArray()) {

发生了什么?它似乎与您的代码一样工作。substring=substring.concatCharacter.toStringlstring.charAti;没有解释。。。没有投票。这就是大多数只提供代码的答案的情况。不要推荐StringJoiner。这更像是一种内在的东西。改用StringBuilder。