Java-如何获得Z的下一个字母成为A?

问题描述 投票:0回答:2

我正在尝试使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);
    }
}

enter image description here

java arraylist
2个回答
0
投票

您无法将字符串与“ ==”运算符进行比较,因为它会检查相等的引用而不是值。使用equals函数。

String a = "z";
String b = "z";
System.out.println(a==b); // false
System.out.println(a.equals(b)); // true

0
投票
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

Ouput

© www.soinside.com 2019 - 2024. All rights reserved.