奇异词子串方法

时间:2017-05-07 03:34:27

标签: 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));
        substring.concat(Character.toString(lstring.charAt(i)));
        i++;
    }
    System.out.println(substring);
    return substring;
}

请帮忙!

4 个答案:

答案 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(...