Java 编码帮助!无法获取 if 语句来确认字符串
Java Coding Help! Can't get if statement to confirm string
编写一个程序,提示用户提供字母表中的单个字符。根据用户输入打印元音或辅音。如果用户输入不是字母(介于 a 和 z 或 A 和 Z 之间),或者是长度 > 1 的字符串,则打印一条错误消息。
我一直在努力解决这个问题,基本上已经解决了,但是 运行 分为两个问题。如果用户输入数字而不是字母,我如何让扫描仪识别错误。还有一个人如何不必重复他们的输入。有没有办法让第一个 if 语句评估用户是否输入了字符串?
import java.util.*;
public class MessAround {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please Provide single character from the alphabet: ");
String letter = scan.next();
if (scan.hasNext())
{
letter = letter.toLowerCase();
if (letter.equals("a") || letter.equals("e") || letter.equals("i") || letter.equals("o") || letter.equals("u"))
{
System.out.println("Vowel");
}
else if (letter.length() > 1)
{
System.out.println("Error");
}
else
{
System.out.println("Consonant");
}
}
else
{
System.out.println("Error");
}
}
}
添加到您的 if
s: if (isNumber(letter)) { // A number was entered.
并创建一个 isNumber(String)
方法 returns true
如果字符串是某种意义上的数字你是认真的。
或者最好将其设为 String isValid(String)
方法并在该方法中实施您的验证规则。如果验证成功,它可能 return null
否则会显示一条消息。
有很多方法可以解决这个问题。其中几个如下:
使用正则表达式:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Please Provide single character from the alphabet: ");
String letter = scan.next();
if (!letter.matches("[A-Za-z]")) {
System.out.println("Error");
} else {
letter = letter.toLowerCase();
if (letter.matches("[aeiou]")) {
System.out.println("Vowel");
} else {
System.out.println("Consonant");
}
}
}
}
从 here 了解正则表达式。
使用class,Character
:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Please Provide single character from the alphabet: ");
String letter = scan.next();
if (letter.length() == 1 && Character.isAlphabetic(letter.charAt(0))) {
char ch = Character.toLowerCase(letter.charAt(0));
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
System.out.println("Vowel");
} else {
System.out.println("Consonant");
}
} else {
System.out.println("Error");
}
}
}
编写一个程序,提示用户提供字母表中的单个字符。根据用户输入打印元音或辅音。如果用户输入不是字母(介于 a 和 z 或 A 和 Z 之间),或者是长度 > 1 的字符串,则打印一条错误消息。
我一直在努力解决这个问题,基本上已经解决了,但是 运行 分为两个问题。如果用户输入数字而不是字母,我如何让扫描仪识别错误。还有一个人如何不必重复他们的输入。有没有办法让第一个 if 语句评估用户是否输入了字符串?
import java.util.*;
public class MessAround {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please Provide single character from the alphabet: ");
String letter = scan.next();
if (scan.hasNext())
{
letter = letter.toLowerCase();
if (letter.equals("a") || letter.equals("e") || letter.equals("i") || letter.equals("o") || letter.equals("u"))
{
System.out.println("Vowel");
}
else if (letter.length() > 1)
{
System.out.println("Error");
}
else
{
System.out.println("Consonant");
}
}
else
{
System.out.println("Error");
}
}
}
添加到您的 if
s: if (isNumber(letter)) { // A number was entered.
并创建一个 isNumber(String)
方法 returns true
如果字符串是某种意义上的数字你是认真的。
或者最好将其设为 String isValid(String)
方法并在该方法中实施您的验证规则。如果验证成功,它可能 return null
否则会显示一条消息。
有很多方法可以解决这个问题。其中几个如下:
使用正则表达式:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Please Provide single character from the alphabet: ");
String letter = scan.next();
if (!letter.matches("[A-Za-z]")) {
System.out.println("Error");
} else {
letter = letter.toLowerCase();
if (letter.matches("[aeiou]")) {
System.out.println("Vowel");
} else {
System.out.println("Consonant");
}
}
}
}
从 here 了解正则表达式。
使用class,Character
:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Please Provide single character from the alphabet: ");
String letter = scan.next();
if (letter.length() == 1 && Character.isAlphabetic(letter.charAt(0))) {
char ch = Character.toLowerCase(letter.charAt(0));
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
System.out.println("Vowel");
} else {
System.out.println("Consonant");
}
} else {
System.out.println("Error");
}
}
}