前に言ったように、入力した文字がパラメーターの1つであるかどうかをテストするにはどうすればよいですか?私はこのコードを書きましたが、うまく動作しないようです(またはまったく動作しないようですが、エラーはありません)。また、ここで使用した基本的なコードを使用する必要があります。それは学校のためであり、彼らが私たちに教えていないことを使うと、私たちはポイントを失います(くそ学校)。
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");
}
}
コードにforループは必要ありません。
メソッドを再実装する方法は次のとおりです
編集:
続行するためのヒントを次に示します。次のコードスニペットは、int
sの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
の2つの数字の間に数字b
が存在するかどうかを確認する方法は次のとおりです。
// x greater than or equal to a and x less than or equal to b
if ( x >= a && x <= b )
比較中にchar
sは数値として扱うことができます
これらのヒントを組み合わせることができれば、必要なものを見つけることができるはずです;)
宿題でない場合は、Character.isDigit(char)
、Character.isUpperCase(char)
、Character.isLowerCase(char)
などの既存のメソッドを使用できます。 tは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';
}
Java:文字クラスにはisLowerCase(Char ch)ans isUpperCase(Char ch)と呼ばれる静的メソッドがあり、Character.isDigit(Char ch)はブール値を与えます。仕事
例:
文字列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
}
コードに関するいくつかのコメント
for(i='A';i<='Z';i++)
のような2つのforループが必要なのか、単純なif
ステートメントでこれをチェックできる場合...範囲全体をループしながら、単純にその範囲に含まれるA
のとき、最初のループに初めて入ったときに結果が得られます)、残りすべてをループします。System.out.println("Lowercase");
ステートメント(および大文字のステートメント)が間違ったループに配置されていますCharacter
メソッドとisUpperCase
メソッドを持つisLowerCase
クラスを参照することをお勧めします。宿題なので残りはあなたにお任せします
前後に大文字と小文字があるように見えます。 A-Zは上、a-zは下になります。正確には効率的ではありませんが、大文字と小文字を逆にした例外を除き、正しく出力されるはずです。
これはあなたの宿題ですので、ループを使用して文を切り替える必要があると思います。それはOKですが、なぜあなたのすべてのループが特権的なループの内側にあるのですか?
それらを同じ「レベル」に取り出すだけで、コードは問題ありません。 (低/アップミックスアップの一部)。
ヒント:追加の「Enter」と「Space」を押すのは無料です! (それが私があなたのコードに最初にしたことであり、問題は非常に些細なものになりました)
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
}
これはあなたが探しているものではないかもしれませんが、私はあなたがこれを行う本当の方法を知っているべきだと思いました。 _Java.lang.Character
_クラスのisUpperCase()
を使用して、キャラクターの大文字と小文字を調べることができます。 isDigit()
を使用して、数字と文字を区別できます(これは単なる参考です:))。その後、toUpperCase()
を実行してから、母音の切り替えを実行できます。これにより、コードの品質が向上します。