1

ユーザー (キーボード スキャナー) から 10 個の名前を読み取り、それらを配列に格納するプログラムを作成する必要があります。次に、配列をループして名前を大文字で表示します (for each ループを使用してすべてを表示します)。どうすればいいのですか?現時点で私は持っています:

import java.util.Scanner;

public class Names
{
    public static void main(String[] args) throws Exception
    {
        Scanner nameScan = new Scanner(System.in);
        String[] names = new String[10];
        String[] namesUpper = new String[10];

        System.out.print("Enter a name : ");
        names=nameScan.next(); 


        namesUpper=names.toUpperCase();
        System.out.println("Names in upper case: "+namesUpper);
    } 
}

これまでのところ、私はこれを持っていますが、まだ機能していません。どこが間違っていますか?ありがとう

import java.util.Scanner;

    public class NamesReAD
    {
        public static void main(String[] args) throws Exception
        {
            Scanner nameScan = new Scanner(System.in);
            String[] names = new String[10];


            for (int i = 0 ; i < names.length ; i++) {
                System.out.print("Enter a name: ");
                names[i] = nameScan.nextLine().toUpperCase();
            }
            nameScan.close();
            System.out.println("Here is name"+names);
        }
    }
4

2 に答える 2

1
for (int i = 0 ; i < names.length ; i++) {
    System.out.print("Enter a name: ");
    names[i] = nameScan.nextLine().toUpperCase();
}

このセクションは、.toUpperCase()を除いて機能します。名前は大文字に変更されません。

于 2012-11-04T20:53:06.647 に答える
0

for配列をトラバースして各インデックスに適切なデータを配置するには、ループが必要です。例えば、

for (int i = 0 ; i < names.length ; i++) {
    System.out.print("Enter a name: ");
    names[i] = nameScan.nextLine();
}

これは、ユーザーに名前を 10 回尋ね、ユーザーがnames入力したものを配列に入力します。namesUpperこれで、2 番目の配列 ( )を実際に作成する必要はなくなりました。もう一度ループしnamesて印刷できますnames[i].toUpperCase()(または、提案したようにfor-eachループを使用しますが、考え方は同じです)。


現在のように、次の 2 行はコンパイルされません。

names = nameScan.next(); 
namesUpper = names.toUpperCase();

1)namesは配列でありnameScan.next()、文字列を返し、2)namesと呼ばれるメソッドがないためtoUpperCaseです。


編集names:または、名前を配列に追加するときに、名前を大文字で保存することもできます。

for (int i = 0 ; i < names.length ; i++) {
    System.out.print("Enter a name: ");
    names[i] = nameScan.nextLine().toUpperCase();
}

そうすれば、配列の内容を印刷するときに何も心配する必要はありません。

于 2012-11-04T12:49:23.173 に答える