dポイントプレゼントキャンペーン実施中!

現在javaのクラスを取っています(英語)。
宿題が出たのですが2時間くらいかけて作ったプログラムがいまだに完成しませんw
わかる方いましたら部分的でもいいので解答をお願いしたいです。
特に2番目の26ストリングのところ。ここは数だけ宣言するのかa~zまでを先に宣言してしまうのかいまいちわかりません。4番目で入力した数に対応するアルファベット・・・と書いてあるのですが
いったいどこでアルファベットを宣言するのやら。

どうかよろしくお願いします。
引き続きがんばります。

以下問題です。

Write a Java application that:

・declares a Scanner variable
・declares an array of 26 String values, and initializes each array element with the corresponding lowercase letter of the alphabet
・prompts the user to enter an integer, and uses the Scanner's nextInt method to obtain that integer from the user
・prints out the corresponding letter from the array, so if the input is zero, should print "a", and should print "z" for an input of 25.
・creates a new array of size 27, puts a string containing a space (" ") at index 0 in the new array, and copies all the other letters to positions 1..26 of the new array. The simplest way to do this is to use System.arraycopy()
・loops through the array, printing each entry as follows:
if the entry is a vowel ("a", "e", "i", "o", "u"), it must be printed in uppercase
otherwise, the entry must be printed as is
・computes and prints the number of non-vowel strings at the end of the loop.

Requirements
The program must catch the InputMismatchException from the call to nextInt, in which case the program must display an appropriate error message and end the program.
The program should catch any other problems with the input, for example, a negative input number or a number larger that 26.
The loop should work for any size initial array, and should not depend on the array size -- you may use array.length to find out the size of the array.
You should memorize the sequence of parameters to System.arraycopy() and their meaning. This will be useful later in the semester (and may appear on quizzes or exams).

A 回答 (4件)

ここ?


Fall 2011: Introduction to Computer Science II, ICS 211
University of Hawaii

http://www2.hawaii.edu/~esb/2011fall.ics211/hw1. …

訳すとこんな感じ――

以下のJavaアプリケーションを作成してください:
1)クラスScanner型の変数を宣言します。
2)長さ26のString型配列を宣言し、英小文字a~zを要素とするよう初期化します。
3)整数値の入力を促すプロンプトを表示し、(1)で宣言したScanner型変数のメソッドnextIntを使って、整数値を取得します。
4)整数値に対応する英小文字を出力します。入力値0なら文字「a」、25なら「z]です。
5)長さ27の配列を新たに作成し、文字列「 」(空白文字1文字からなる文字列。)を添え字0の配列要素に代入します。続いて、(2)の配列要素を、新たな配列(の添え字1からの場所)へコピーします。これを実現する簡単な方法は、メソッドSystem.arraycopy()を使用することです。
6)(5)の配列をループ(すなわち配列要素を列挙する。)して、以下の処理を行うこと。
6-1)列挙要素が母音(「a」「e」「i」「o」「u」)であれば、大文字で出力する。
6-2)列挙要素が母音でなければ、そのままで出力する。
7)ループ終了後、非母音文字の数(多分22=アルファベット26-母音5+空白1)を出力します。

(必須要件)
・プログラムはメソッドnetxtIntが励起する例外InputMismatchExceptionを捕捉できなければいけない。例外を捕捉した場合、適切なエラーメッセージを出力し、プログラムを終了させる。
・プログラムはその他の入力誤りにも対応しなければいけない。たとえば、-1が入力された場合や、26より大きい数値を入力されたときなど。
・配列のループを記述する際は、ループ回数を直接数字で指定しないこと。配列長を求めるには、配列のフィールドlengthが使用できる。
・System.arraycopy()の引数の並び方と、引数の意味を覚えておくこと。後々の授業で役立つため。

……英語苦手なので、訳し間違いがあるかも。(6)の配列は、(2)で作成した配列かもしれない。
    • good
    • 0
この回答へのお礼

あ、お恥ずかしながらまさにそこです。

全訳ありがとうございます!
そうなんですよ、ループはどっちの配列を使えばいいのかわからなかったのですが
とりあえず一通り終えて提出しました!
とても参考になりました!

僕も英語苦手で、常に苦労してます。

どうもありがとうございました。

お礼日時:2011/08/30 19:44

おっと、プログラムの仕様のところの話ではなかったですか。

    • good
    • 0

Scanner クラスを用いて nextInt() でユーザー入力値を取得。


それを用いて最初に作成した アルファベットの配列から取得する。

たぶん悩んでる部分はここかな。

#nextInt() は 標準入力等から入力された数値が取得できますよ。

この回答への補足

解答ありがとうございます。

nextInt()で入力値取得→配列からアルファベット取得

の流れはできました!

今は最後のrequirementsのところで悩んでいます。
おそらくtry,catchを使うと思うのですが(ここから間違ってたらすみません)うまくいきません。
どこでtryを使えばいいのか、catchのあとの()の中はInputMismatchExceptionでいいのか?どう書けばいいのかがわかりません。

わかりましたら解答、もしくはヒントでもいいのでいただけたらありがたいです。

補足日時:2011/08/29 16:58
    • good
    • 0

なんかよくわからないことが書いてある問題だしぎりぎり言うと requirements におかしな点はあるけど, それはさておき.



「数だけ宣言する」とか「a~zまでを先に宣言してしまう」とかって何を言いたいのでしょうか?

この回答への補足

言葉足らずですみません。

String[] array = new String [26]; もしくは
String[] array = {"a","b"・・・}

でやるかと
そういう意味です。

日本語でなんて説明していいのかいまいちわからないもので。

とりあえず自分でまだ進めています。
見ていただきありがとうございます。

補足日時:2011/08/29 15:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!