1

forループを使用して、1次元の文字列配列内のすべての文字を調べ、「文字[a]は大文字」、「文字[b]は小文字」、または「文字[c]はスペース」を出力しようとしています。また、インデックス番号とそのインデックスの文字を印刷する必要があります。

大文字と小文字で別々の文字列を作成することになっていると思っていましたが、間違っていたことがわかりました。文字列配列をchar配列に変換する必要があるかどうかもわかりませんか?

メソッドを使うことになっていると思いますcharAt()が、方法がわかりません。

これは私がしたことです:

for(x = 0; x < fullName.length(); x++)
{
    if(fullName[0] == nameUpperCase[2]);
    {
        System.out.print("character [0] located at position [0] is  lowercase");
    }

    if(fullName[1] == nameLowerCase[4]);
    {
        System.out.print("character [b] located at position [1] is uppercase"); 
    }
}

ご覧のとおり、ループを使用して「a」または「b」を印刷する方法さえ理解できなかったため、それぞれを現在の位置と一緒に手動で挿入する必要がありました...

4

6 に答える 6

1
fullName[0] == nameUpperCase[2]

上記の表現は間違っています。full.length()メソッドを使用しているため、fullNameはforループの文字列であると想定しています。fullNameは配列ではないため、fullName[0]を実行するのは誤りです。文字列内の文字を取得するには、String.charAt(index)メソッドを使用します。初心者の方は、StringClassAPIを参照してください。

あなたは私が思うこのようなことをすることができます:

    String[] s= {"Ab "};
    for(String ss: s) {
         for(int i=0; i<ss.length(); i++) {
             if(Character.isUpperCase(ss.charAt(i))) {
                 System.out.println("character "+ss.charAt(i)+" located at position"+i+ " is  lowercase");
             }
             else if(Character.isLowerCase(ss.charAt(i))) {
                 System.out.println("character "+ss.charAt(i)+" located at position"+i+ " is  lowercase");
             }
             else if(else if(Character.isSpaceChar(ss.charAt(i)))) {
                 System.out.println("character "+ss.charAt(i)+" located at position"+i+ " is  lowercase");
             }
         }
于 2012-09-29T00:57:01.313 に答える
1

もっと簡単な方法があるかもしれませんが、これはうまくいくかもしれません。

if (str.toUppercase().equals(str)) {
    // It's uppercase.
}

if (str.toLowerCase().equals(str)) {
    // It's lowercase.
}
于 2012-09-29T00:58:16.797 に答える
1

2つの文字列を比較している場合(つまり、配列はString[])、コードは各文字列のメモリ参照を比較していますが、これは異なります。

等しいかどうかを比較するには、メソッドStringを使用する必要がありますequals

for(x = 0; x < fullName.length(); x++)
{
    if(fullName[0].equals(nameUpperCase[2]));
    {
        System.out.print("character [0] located at position [0] is  lowercase");
    }

    if(fullName[1].equals(nameLowerCase[4]));
    {
        System.out.print("character [b] located at position [1] is uppercase"); 
    }

}

また、他の回答からいくつかのアイデアを取り入れることをお勧めします。

代わりに、元の配列をchar配列に変換してStringください...

char[] fullName = name.toCharArray();

または、指定されたインデックスでcharを取得することもできます...

for(x = 0; x < originalString.length(); x++)
{
    char charAt = originalString.charAt(x);
    if(Character.isUpperCase(charAt));
    {
        System.out.print("character [0] located at position [0] is  lowercase");
    }

    if(Character.toUpperCase(originalString.charAt(1)) == originalString.charAt(4));
    {
        System.out.print("character [b] located at position [1] is uppercase"); 
    }

}

更新された例

String値をと比較できないことがわかったので、これが==あなたが達成したいと思うことの実際的な例です...

String value = "This is a simple string";
for (int index = 0; index < value.length(); index++) {

    String whatIs = "Unknown";
    if (Character.isUpperCase(value.charAt(index))) {
        whatIs = "Upper case";
    } else if (Character.isLowerCase(value.charAt(index))) {
        whatIs = "Lower case";
    } else if (Character.isSpaceChar(value.charAt(index))) {
        whatIs = "Space";
    } else if (Character.isDigit(value.charAt(index))) {
        whatIs = "Digit";
    }

    System.out.println("Character @ " + index + " (" + value.charAt(index) + ") is a " + whatIs + " character");

}

どの出力

Character @ 0 (T) is a Upper case character
Character @ 1 (h) is a Lower case character
Character @ 2 (i) is a Lower case character
Character @ 3 (s) is a Lower case character
Character @ 4 ( ) is a Space character
Character @ 5 (i) is a Lower case character
Character @ 6 (s) is a Lower case character
Character @ 7 ( ) is a Space character
Character @ 8 (a) is a Lower case character
Character @ 9 ( ) is a Space character
Character @ 10 (s) is a Lower case character
Character @ 11 (i) is a Lower case character
Character @ 12 (m) is a Lower case character
Character @ 13 (p) is a Lower case character
Character @ 14 (l) is a Lower case character
Character @ 15 (e) is a Lower case character
Character @ 16 ( ) is a Space character
Character @ 17 (s) is a Lower case character
Character @ 18 (t) is a Lower case character
Character @ 19 (r) is a Lower case character
Character @ 20 (i) is a Lower case character
Character @ 21 (n) is a Lower case character
Character @ 22 (g) is a Lower case character
于 2012-09-29T01:03:32.777 に答える
1

を使用している場合はString、を使用charAtして文字を選択できます。たとえば、を使用して個々の文字を選択することはできませんfullName[0]。この表記fullName、文字配列の場合に可能になります。

String fullName = "Stack Overflow";
for (int x = 0; x < fullName.length(); x++)
{
   char testChar = fullName.charAt(x);
   if (Character.isLowerCase(testChar))
   {
     System.out.println("character [" + testChar + "] located at position [" + x + "] is lowercase");
   }
   else if (Character.isUpperCase(testChar))
   {
      System.out.println("character [" + testChar + "] located at position [" + x + "] is uppercase");
   }
   else if (Character.isSpaceChar(testChar)) {
     System.out.println("character [" + testChar + "] located at position [" + x + "] is a space");
  }
}
于 2012-09-29T01:05:00.613 に答える
0

あなたは試してみたいかもしれません、

    for(x = 0; x < fullName.length(); x++)
    {
        if( fullName[x].equals(nameUpperCase[x]) );
        {
            System.out.print("character [" + fullName[x] + "] located at position [" + x +       "] is lowercase.");
        }

        if( fullName[x].equals(nameLowerCase[x]) );
        {
            System.out.print("character [" + fullName[x] + "] located at position [" + x + "] is  uppercase."); 
        }

    }

fullName、nameUpperCase、nameLowerCaseが文字列配列の場合は、正常に機能するはずです。ただし、他の人が投稿したソリューションを見ると、より明確でクリーンなコードを探すことをお勧めします。

于 2012-09-29T00:56:32.287 に答える
0

あなたはこのようなものが欲しいかもしれません:

String s = "Hello World";
for (int i = 0 ; i < s.length() ; i++) {
    char c = s.charAt(i);
    if (c == ' ')
        System.out.println("character located at position [" + i + "] is a space");
    else if (Character.isUpperCase(c))
        System.out.println("character [" + c + "] located at position [" + i + "] is uppercase");
    else if (Character.isLowerCase(c))
        System.out.println("character [" + c + "] located at position [" + i + "] is lowercase");
    // else character is not recognized
}

もちろん、Stringここでは1つしか使用していませんが、の場合は、String[]このプロセスをすべてのメンバーに適用するだけで済みます。

于 2012-09-29T01:04:00.330 に答える