我正在尝试使Z
中的下一个字母变为A
,但我的if else语句无法正常工作
import java.util.ArrayList; // import the ArrayList class
public class Main {
public static void main(String[] args) {
ArrayList<String> alphabets = new ArrayList<String>(); // Create an ArrayList object
String getalpha;
alphabets.add("A");
String nextalpha;
String lastchar;
int charValue;
int x = 0;
while (x < 30) {
getalpha = alphabets.get(x);
lastchar = getalpha.substring(getalpha.length() - 1);// get last character in alphabets
if (lastchar != "Z") {
charValue = lastchar.charAt(0);
nextalpha = String.valueOf((char) (charValue + 1));// next alphabets
} else if (lastchar == "Z") {
nextalpha = "A";
}
getalpha = getalpha + nextalpha;
alphabets.add(getalpha);
x++;
System.out.println(getalpha);
}
// System.out.println(alphabets);
}
}
您无法将字符串与“ ==”运算符进行比较,因为它会检查相等的引用而不是值。使用equals函数。
String a = "z";
String b = "z";
System.out.println(a==b); // false
System.out.println(a.equals(b)); // true
import java.util.ArrayList; // import the ArrayList class
public class Test {
public static void main(String[] args) {
ArrayList<String> alphabets = new ArrayList<String>(); // Create an ArrayList object
String getalpha;
alphabets.add("A");
String nextalpha = "";
String lastchar;
int charValue;
int x = 0;
while (x < 30) {
getalpha = alphabets.get(x);
lastchar = getalpha.substring(getalpha.length() - 1);// get last character in alphabets
if (lastchar.equals("Z") == false) {
charValue = lastchar.charAt(0);
nextalpha = String.valueOf((char) (charValue + 1));// next alphabets
} else if (lastchar.equals("Z")) {
nextalpha = "A";
}
getalpha = getalpha + nextalpha;
alphabets.add(getalpha);
x++;
System.out.println(getalpha);
}
// System.out.println(alphabets);
}
}
所做的修改:
lastchar!=“ Z”到lastchar.equals(“ Z”)== false,因为==用于字符比较。您需要使用.equals()进行字符串比较。
lastchar ==“ Z”到lastchar.equals(“ Z”)与上面相同的原因
String nextalpha;到String nextalpha =“”;
希望这会有所帮助:D