Java真的让我的括号和变量感到困惑,我知道只需要一些帮助就能理解问题所在并继续使用它。
if(value1=||
错误在哪里。
事先道歉,缩进8个空格似乎也没有正确拉动。帮助,也赞赏...
import java.util.Scanner;
public class WTF {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.println("Please enter your Character");
String value1 =input.toString();
if (value1 ="a"||"A"||"e"||"E"||"i"||"I"||"o"||"O"||"u"||"U") {
System.out.print("You entered " +value1);
}
else System.out.print("Consonant");
}
}
答案 0 :(得分:3)
你必须分别检查每个字符串:
if (value1=="a"||value1=="A"||value1=="e"||value1=="E"||value1=="i"||value1=="I"||value1=="o"||value1=="O"||value1=="u"||value1=="U")
但是这很可能不起作用,因为==
检查对象上的标识而不是相等而String
是一个对象。所以你必须这样写:
if (value1.equals("a") || value1.equals("A") || value1.equals("e") || value1.equals("E") || value1.equals("i") || value1.equals("I") || value1.equals("o") || value1.equals("O") || value1.equals("u") || value1.equals("U")
这只是变得痛苦所以你可以通过将value1
设置为upercase来减少这种情况,并检查upercase值:
String value1_tmp = value1.toUperCase();
if (value1_tmp.equals("A") || value1_tmp.equals("E") || value1_tmp.equals("I") || value1_tmp.equals("O") || || value1_tmp.equals("U")
这仍然有点难看,所以我们可以通过将其放入方法并使用switch
语句来改进它
private static boolean isVowel(String s) {
switch(s.toUperCase()) {
case "A":
case "E":
case "I":
case "O":
case "U":
return true;
default:
return false;
}
}
然后在if
检查中使用此方法:
if (isVowel(value1)) { ...
如果您是regular expressions的粉丝,只需执行以下操作:
if (value1.matches("(?i)[aeiou]")) { ...
这么多选项,只需选择一个:)
编辑:还要修复Djehenghizz提到的内容。而不是
String value1 = input.toString();
DO
String value1 = input.nextLine();
答案 1 :(得分:1)
另外,将http://localhost:8000/partials/feature.html
更改为String value1=input.toString();
,因为输入已经是字符串,您无需转换它。
答案 2 :(得分:1)
||
逻辑OR运算符仅用于组合两个布尔变量或表达式,并返回 true 的结果或者它的两个操作数都是 true 。
这里你要做的是在两个字符类型之间使用||
。所以它实际上会引发编译时错误。
检查的正确方法是==>
Scanner reader = new Scanner(System.in);
char c = reader.nextChar(); //Correct way to Read Char from Console.
private boolean checkVowel(char c) {
switch(c) {
case 'A':
case 'a'
case 'E':
case 'e'
case 'I':
case 'i'
case 'O':
case 'o':
case 'u':
case 'U':
return true;
default:
return false;
}
}
答案 3 :(得分:1)
使用以下代码
public static void main(String[] args) {
List<String> vowelsList = Arrays.asList("a","A","e","E","i","I","o","O","u","U" );
Scanner input =new Scanner(System.in);
System.out.println("Please enter your Character");
String value1 = input.next();
if (vowelsList.contains(value1)) {
System.out.print("You entered " +value1);
}
else System.out.print("Consonant");
}
答案 4 :(得分:0)
尝试
if (value1=="a"||value1=="A"||value1=="e"||value1=="E"||value1=="i"||value1=="I"||value1=="o"||value1=="O"||value1=="u"||value1=="U") //...
或者
if ("aeiouAEIOU".contains(value1))//...
答案 5 :(得分:0)
String value1 =input.toString();
这意味着使用获取有关输入的信息 - 一个Scanner类的实例,它的目标不是您输入的内容。
你可以使用
String value1 = input.next();
或
String value1 = input.nextLine();
答案 6 :(得分:0)
布尔运算符用于检查两个布尔变量的值,并在此处返回一个布尔值,您使用运算符来比较两个不兼容的字符串。 如前所述,您使用input.toString方法来获取扫描器类的实例,但它不是comptilbe,而是您可以使用input.Read()或input.ReadLine()。
答案 7 :(得分:0)
对于字符串,您应该使用.equals(“Your Text here”)方法。应该是这样的:
.trimmed -text{
height: 15px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
等等。