我正在尝试创建一种以相反顺序返回单词字符串的方法。

IE/“西类牙的降雨主要落在
会返回:“在雨中大部分落在西类牙上”

为此,我不应该使用任何内置的Java类,而只能使用基本Java。

到目前为止,我有:

    lastSpace = stringIn.length();

    for (int i = stringIn.length() - 1; i >= 0; i--){
        chIn = stringIn.charAt(i);
        if (chIn == ' '){
            word = stringIn.substring(i + 1, lastSpace);
            stringOut.concat(word);
            lastS = i;
        }
    }
    word = stringIn.substring(0,lastSpace);
    stringOut.concat(word);

    return stringOut;

我的问题是,将stringOut返回给其调用方时,它始终是空字符串。

难道我做错了什么?也许我使用了string.concat()

最佳答案

在Java中,字符串是不可变的,即不能更改。 concat()返回带有串联的新字符串。所以你想要这样的东西:

stringOut = stringOut.concat(word);

或者
stringOut += word

正如Ray所指出的那样,还有更多简洁的方法可以做到这一点。

10-02 04:13