正如我之前所说,如何测试输入的字符是否是其中一个参数?我编写了这段代码,但它似乎运行得不好(或根本没有),但没有错误。另外,我需要使用我在这里使用的基本代码。它用于学校,如果我们使用他们没有教过我们的东西(学校),我们就会失去分数。
class doody
{
public static void main(String[] args)
{ char i;
char input='D';
for(i='A';i<='Z';i++)//check if uppercase
{
if(input==i){
System.out.println("Uppercase");
switch(input){
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
System.out.println("Vowel"); break;
default: System.out.println("Not a vowel"); break;}
}
for(i='a';i<='z';i++)//check if lowercase
{
if(input==i){
System.out.println("Lowercase");
switch(input){
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
System.out.println("Vowel"); break;
default: System.out.println("Not a vowel"); break;
}}
for(i='0';i<='9';i++)//check if number
{
if(input==i)
System.out.println("Number");
}
}
}}}
编辑:这是我今天汇集的一些代码。更简单。我不知道为什么我之前没有发生这种情况。可能是因为我昏昏沉沉,已经很晚了。
class doody
{
public static void main(String[] args)
{
char input='$';//input here.
boolean lorn=false;
if(input>='a'&&input<='z')
{System.out.println("Lowercase");
lorn=true;
if(input=='a')System.out.println("Vowel.");
if(input=='e')System.out.println("Vowel.");
if(input=='i')System.out.println("Vowel.");
if(input=='o')System.out.println("Vowel.");
if(input=='u')System.out.println("Vowel.");
}
if(input>='A'&&input<='Z')
{System.out.println("Uppercase");
lorn=true;
if(input=='A')System.out.println("Vowel.");
if(input=='E')System.out.println("Vowel.");
if(input=='I')System.out.println("Vowel.");
if(input=='O')System.out.println("Vowel.");
if(input=='U')System.out.println("Vowel.");
}
if(input>='0'&&input<='9')
{
lorn=true;
System.out.println("Number");
}
if(lorn==false)System.out.println("It is a special character");
}
}
答案 0 :(得分:11)
您的代码中不需要for循环。
以下是如何重新实施方法
修改强>
以下是提示您继续操作,以下代码段为int
提供char
个值
System.out.println("a="+(int)'a');
System.out.println("z="+(int)'z');
System.out.println("A="+(int)'A');
System.out.println("Z="+(int)'Z');
输出
a=97
z=122
A=65
Z=90
以下是检查x
和a
b
个数字的方法
// x greater than or equal to a and x less than or equal to b
if ( x >= a && x <= b )
在比较期间,char
可被视为数字
如果你可以结合这些提示,你应该能够找到你想要的东西;)
答案 1 :(得分:11)
如果它不是作业,您可以使用现有方法,例如Character.isDigit(char)
,Character.isUpperCase(char)
和Character.isLowerCase(char)
,这些方法有点“更聪明”,因为它们不仅仅运作在ASCII中,但也在各种字符集中。
static final char[] VOWELS = { 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U' };
static boolean isVowel(char ch) {
for (char vowel : VOWELS) {
if (vowel == ch) {
return true;
}
}
return false;
}
static boolean isDigit(char ch) {
return ch >= '0' && ch <= '9';
}
static boolean isLowerCase(char ch) {
return ch >= 'a' && ch <= 'z';
}
static boolean isUpperCase(char ch) {
return ch >= 'A' && ch <= 'Z';
}
答案 2 :(得分:7)
在Java中:Character类有静态方法叫做isLowerCase(Char ch)和isUpperCase(Char ch),Character.isDigit(Char ch)给你布尔值,基于你可以轻松实现你的任务
示例:
String abc =“HomePage”;
char ch = abc.charAt(i); // here i= 1,2,3......
if(Character.isLowerCase(ch))
{
// do something : ch is in lower case
}
if(Character.isUpperCase(ch))
{
// do something : ch is in Upper case
}
if(Character.isDigit(ch))
{
// do something : ch is in Number / Digit
}
答案 3 :(得分:2)
对您的代码的一些评论
for(i='A';i<='Z';i++)
,如果你可以用一个简单的if
语句来检查...你可以循环遍及整个范围,而你可以简单地检查它是否是包含在该范围内A
时,您将在第一次进入第一个循环时获得结果),您仍然可以遍历所有其他System.out.println("Lowercase");
语句(以及大写语句)放在错误的循环中Character
类,其中包含例如isUpperCase
和isLowerCase
方法由于这是家庭作业,我把剩下的留给你了
答案 4 :(得分:0)
您似乎从前到后都有大写和小写。 A-Z将是上限,a-z将更低。虽然效率不高 - 但是反转的情况例外,我认为它应该输出正确。
答案 5 :(得分:0)
这可能不是你想要的,但我认为你应该知道这样做的真正方法。您可以使用java.lang.Character
类的isUpperCase()
来查找有关该字符大小写的内容。您可以使用isDigit()
区分数字和字母(这只是FYI :))。然后,您可以执行toUpperCase()
,然后切换元音。这将提高您的代码质量。
答案 6 :(得分:0)
这是你的作业,所以我假设你需要使用循环和切换语句。 那是O.K,但是为什么你所有的循环都是内在的呢?
只需将它们带到相同的“级别”,您的代码就可以了! (部分为低/高混合)。
小贴士:按额外的'Enter'&amp; '太空'是免费的! (这是我对你的代码做的第一件事,问题变得非常简单)
答案 7 :(得分:0)
Char input;
if (input.matches("^[a-zA-Z]+$"))
{
if (Character.isLowerCase(input))
{
// lowercase
}
else
{
// uppercase
}
if (input.matches("[^aeiouAEIOU]"))
{
// vowel
}
else
{
// consonant
}
}
else if (input.matches("^(0|[1-9][0-9]*)$"))
{
// number
}
else
{
// invalid
}