我无法确定返回的子字符串为何总是""。当单个单词通过时(例如化学)我会得到如下内容:
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;
}
请帮忙!
答案 0 :(得分:1)
您永远不会重新分配连接的字符串。试试这个:
substring = substring.concat(Character.toString(lstring.charAt(i)));
参考:Oracle Doc
答案 1 :(得分:0)
java中的字符串是不可变的,当您指定它时,您无法再次更改其中的值 就像“Devendra Lattu”那样,每次将新角色连接到变量时都需要分配连接的输出
substring=substring.concat(Character.toString(lstring.charAt(i)));
如果你不喜欢这个,你可以使用java 8 link to it中的StringJoiner,它更快,更可变 我很抱歉第一个答案:)
答案 2 :(得分:0)
您的子字符串未被打印的原因,因为当您进行连接时,您不会将其存储在子字符串中,因此在循环结束时子字符串仍然存在空白。 请尝试以下更改:
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;
答案 3 :(得分:0)
String对象是不可变的。因此,concat()不会更改子字符串,但会返回更改的字符串。因此你需要
add_action('admin_menu','my_func',8,2);
function my_func($one, $two){
//Something here …
}
除此之外:你想迭代那个字符串的字符。你绝对不需要那么复杂的while循环。而是在这里使用for-each循环样式:
substring = substring.concat(...