java - for 循环中的 String.charAt(i) 在 Java 中不起作用

标签 java loops variables if-statement charat

我有一个作业要编写一个方法,该方法接受两个字符串作为参数并返回值 10-1 (分别)如果第一个字符串按字典顺序位于第二个字符串之前、等于或之后,则仅使用 String 类中的 charAt()length() 方法。

问题是,即使我在 for 循环中初始化了一个 int 变量,但在使用 charAt() 方法时,它稍后不会在循环中识别它们。编译器一直提示“意外类型。必需:变量;找到:值”(使用 BlueJ)。

public class Word {

    private String _st;

    /**
     * range small letters: a = 97, z = 122.
     * 
     * range capital letters: A = 65, Z = 90.
     */
    public int myCompare(String s1, String s2) {
        char[] alphabet = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

        //1st loop i;
        //2nd loop j;
        //3rd loop k;
        for (int i = 0; i < s1.length(); i++) {
            _st = new String (s1);
            if (_st.charAt(i) < 97) {
               _st.charAt(i) += 32;
            }

            for (int j = 0; alphabet[j] == _st.charAt(i); j++) {
                int x = alphabet[j];
                _st.charAt(i) = x;
            }
        }
        return 1; // temporaray.
        /*
        if (s1.charAt(0) < s2.charAt(0)) {
            return 1;
        }
        else if (s1.charAt(0) > s2.charAt(0)) {
            return -1;
        }
        else {
            return 0;
        }*/
    }
}

那么我究竟做错了什么?感谢您的帮助。

最佳答案

_st.charAt(i) += 32;

这没有意义。

_st.charAt(i) 返回一个 char。如果您不将结果存储在某个变量中,则向该字符添加 32 没有任何意义。

您可以将其替换为:

 char c = _st.charAt(i);
 c += 32;

关于java - for 循环中的 String.charAt(i) 在 Java 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27677753/

相关文章:

java - 使用 JSON OBJECT 解析 JSON 数组

javac 找不到包

python动态创建字典的字典

PHP - 我可以将这个 if else 变成一个更干净的代码片段,例如数组和循环吗?

java - 在Java中,是否可以使用某种while循环(或任何东西)来确定输入提示的数量?

python - 为什么不能在 __init__ 关键字参数中使用类变量?

Python 名称和变量

javascript - 创建全局变量并生成随机数并在 Javascript 中调用函数时更新变量

java - 字符串的固定长度排列

java - 执行查询后结果集立即关闭