2016-05-21 7 views
0

数字を取り、数値の数字を単語で表示するプログラムをコーディングしました。これまでのところ、私のコードは右側の数字を数えます。これをどうすれば解決できますか?数字の数字を単語に変換する

マイコード:

/*/ Write a program that reads an integer and extracts and displays each digit 
     of the integer in English. So, if the user types in 451, 
     the program will display four five one /*/ 

import static java.lang.System.*; 
import java.util.*; 

class Practice_Problems04_JavaPrograms_Task09{ 
    public static void main(String[] args){ 
     Scanner orcho = new Scanner(in); 
     String[] myArray = {"zero" , "one" , "two" , "three" , "four" , "five" , "six" , "seven" , "eight" , "nine"}; 
     out.print("Please type your number: "); 
     double number = orcho.nextDouble(); 

     for(int count = 0; count <= number; count++){ 
      number /= 10.0; 
      out.print(myArray[(int)(10 * (number - (int)number))] + " "); 
     } 
     out.println(); 

     orcho.close(); 
    } 
} 
+1

ループで 'number'を印刷したことがありますか?それはあなたが期待する注文を印刷しますか? –

+1

また、質問には 'それは整数を読み込みます'なぜ明らかに 'double number ='を使用していますか?不必要なチェックやエラーを避けるために 'Integer'をつけてください。 –

+0

これは、他の方向に行くのに役立ちます。あなたの問題は、10分の1で割ることは、常に右からです。 http://stackoverflow.com/questions/6757708/display-first-n-digits-of-a-number-in-java –

答えて

1

これは演習であり、それは目的を学ぶためのものですので、私は任意のコードを提供することはありません。あなたが何をすべきかのステップのセットだけ:

  1. あなたは既に数字の名前の配列を持っている、それは明らかに質問のように整数に固執、番号を取得するためにdoubleを使用しないでください
  2. 結構ですそれは that reads an integer
  3. だけyからその位置を印刷
  4. '(ループの内側)再びストリング
  5. ループストリング
  6. 整数に各文字の変換の各文字に変換述べ私たちの名前は配列です。ヒント:印刷ごとに新しい行を作成しない方法では:

これは問題ありません!
そうでない場合は、これらの手順をそれぞれ行う方法を学びます。

別のヒント:入力を文字列に変換する場合は、最初に文字列として取得してください。しかし、それは数字だけであるかどうかを確認する必要がありますか? ;)

+1

失礼ではありませんが、私はかつて「コードを提供する」ことなく同じことをしましたが、それはSOの仕組みではないと言われました。ただの警告の言葉。 – finnrayment

+0

@お寄​​せいただきありがとうございます。私もそれを見ましたが、とにかく私はまだ答えています。どこにいても嫌な人がいます... :)私は、初心者にステップを提供することは、常にコードに進む方法だと思います。 –

+1

ああ、あなたは全く失礼ではなかった。私は良かったか悪いと批判されたかったのですが、それは丁寧なやり方で済ませたのです:) –

1

なぜ数字が気になるのですか?あなたは文字を欲しいので、入力から得た文字列を使うことができます:

Scanner orcho = new Scanner(System.in); 
String[] myArray = {"zero" , "one" , "two" , "three" , "four" , "five" , "six" , "seven" , "eight" , "nine"}; 
System.out.print("Please type your number: "); 
String number = orcho.next(); 
for (int i=0; i < number.length(); i++) { 
    System.out.println(myArray[number.charAt(i)-48]); 
    // -48 because 0 has the ASCII value 48 
} 
関連する問題