我有一个任务要编写一个接受两个字符串作为参数的方法,如果第一个字符串在字典上在第二个字符串之前、等于或之后,则返回一个值1
, 0
, (分别),仅使用字符串中的and方法班级。-1
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;
}*/
}
}
那么我到底做错了什么?谢谢你的帮助。