-2

我正在学习 Android 和 Java,遇到了一个问题。

我有一个简单的方法可以修改我输入给她的文本:

 public String ReverseIt(String strToReverse){
     String reversed = "";
    for (int i = strToReverse.length(); i > 0; i--){
        reversed += strToReverse.charAt(i);
    }
    return reversed;
};

我在 Swithc Controls 事件 OnCheckedChangeListener 中调用此方法:

private CompoundButton.OnCheckedChangeListener onReverseSwtichToggleChanged = new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if(!nameEditText.getText().toString().equals("")){
            String nameInReversed = ReverseIt(nameEditText.getText().toString()) ;
            nameTextView.setText(nameInReversed);
        }
        else
            nameTextView.setText("the EditText is empty");

    }
};

出于某种原因,我在方法 ReverseIt 中的反转变量上收到异常/错误。

错误是: reversed = 找不到局部变量 'reversed'

我做错了什么?

4

2 回答 2

3

这对我来说编译得很好,但是您需要将 for 循环更改为如下所示:

for (int i = strToReverse.length()-1; i>=0; i--){
    reversed += strToReverse.charAt(i);
}
于 2013-06-07T14:30:40.337 回答
3

使用它来反转字符串:

str = new StringBuilder(str).reverse().toString();

我知道它不能直接回答您的问题,但您不应该重写 java 库免费提供的方法。

于 2013-06-07T14:26:34.877 回答