如何解决我将如何限制字符的长度?
问题是:编写一个 Java 程序,要求用户提供字母表中的一个字符。根据用户输入打印元音或辅音。如果用户输入的不是字母(介于 a 和 z 或 A 和 Z 之间),或者是长度 > 1 的字符串,则打印适当的描述性错误消息。
我做了一个 switch 语句,它成功地告诉你是否有元音或辅音,但如果用户输入的长度超过一个字符,我不知道如何给出错误消息。
>import java.util.Scanner;
public class VowelKL{
public static void main(String[] args){
int i=0;
Scanner input=new Scanner(system.in);
System.out.println("Enter a single letter from the alphabet: ");
char letter=input.next().charat(0);
switch(letter)
{
case 'a' :
case 'e' :
case 'i' :
case 'o' :
case 'u' :
case 'A' :
case 'E' :
case 'I' :
case 'O' :
case 'U' : i++;
}
if(i==1)
System.out.println("You entered the letter " + letter + " and it is a Vowel!");
else
if((letter>='a' && letter<='z')||(letter>='A' && letter<='Z'))
System.out.println("You entered the letter " + letter + " and it is a Consonant!");
else
System.out.println("You did not enter a single character from the alphabet,please try again.");
}
}
解决方法
你可以使用这样的东西
public int length() {
return i.length;
}
有几种方法可以做到这一点,上面只是一个例子,但 .length()
属性将为您提供字符串长度的 int 值。在上面的例子中,我们将 int 作为一个值返回。
在您的情况下,您可以创建一个新的 int 变量,然后为其分配长度。
int x = letter.length()
这会将字符串的长度设为 int 值。然后,您可以使用它并针对它高于或低于 1 的值编写 if 语句。
编辑:
我很快用 java 写了这个,它似乎按预期工作。希望能帮助您指明正确的方向。请注意,您需要将变量 letter
从 char
更改为 String
import java.util.Scanner;
public class main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
System.out.println("Enter a single letter from the alphabet: ");
String letter= input.nextLine();
if (letter.length() == 1)
System.out.println("Only one letter was entered");
else
System.out.println("Either no letter or more than one letter was entered");
}
,
因为您已经在用户输入命令中指定用户输入仅允许在索引 0 处,即 charAt(0)。因此没有其他方法可以提取该字符值的索引位置。除非您必须在字符串类型中强制转换该特定字符,然后才能访问 String 的
str.lastIndexOf(char) 方法来提供限制。 这不是最佳做法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。