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。