if (flipped.charAt(0) = "a" || "e" || "i" || "o" || "u"){
    paren = "(" + flipped;
    String firstpart = paren.substring(0,5);
    String rest = paren.substring(5);
    System.out.println(rest+firstpart);
}

在这段代码中,我正在检查是否翻转的String的第一个字符是元音。如果是这样,我将在圆括号的开头添加一个括号,并将前5个字符移动到字符串的结尾。 Eclipse给了我java.lang.NullPointerException并说:“分配的左侧必须是变量。”我该怎么做才能解决此问题?

最佳答案

使用包含所有这些值的集合。

Set<Character> myList = new HashSet<Character>(Arrays.asList('a', 'e', 'i', 'o', 'u'));

if(myList.contains(Character.toLowerCase(flipped.charAt(0)))) {
   // Do work
}

这行代码(虽然错误:=将分配,==将进行比较)
if (flipped.charAt(0) == "a" || "e" || "i" || "o" || "u"){

首先将比较flipped.charAt(0) == "a",它返回一个布尔值。然后它将继续使用boolean || "e" || "i" || "o" || "u"
boolean || "e"是无效的代码。

10-05 21:32