• 締切済み

一部の文字列を数値に変える方法

質問させてください。 キーボード入力でもし、 1,2,3,4,5 ←Enter で入力するとき、この「1,2,3,4,5」の「12345」の数値を「abcde」に割り当てる方法はあるのでしょうか? また、方法がない場合、「,」を含んで区切られた数値を別々に分けてaとb割り当てる方法はありますか? ご回答よろしくおねがいします。

みんなの回答

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.3

J2SE 6.0以降ならjava.io.Console#readLine(Strng, Object ...)を使えば出来ませんか?(試してないです)

gumgumgum
質問者

お礼

ご回答ありがとうございます! 挑戦してみます。

  • zozy
  • ベストアンサー率60% (20/33)
回答No.2

質問者さんのやりたいことを実装したソースコードを貼っておきます。 しかし、質問者さんの方法ですと、一桁の数字しかアルファベットに変換できませんが、その問題を解決する方法とソースコードは下記のソースコードを参考にご自分でお考えください。 なお、下記のソースコードに対する質問は受け付けさせていただきますので、いつでも返信ください。 public class Test{ public static void main(String[] args){ String str="1,2,3,4,5"; StringBuffer sb=new StringBuffer(str); for(int i=0;i<str.length();i++){ if(Character.isDigit(str.charAt(i))==false){ sb.delete(i,i+1); str=sb.toString(); } } for(int i=0;i<str.length();i++){ switch(str.charAt(i)){ case '1':sb.delete(i,i+1);sb.insert(i,"a");str=sb.toString();break; case '2':sb.delete(i,i+1);sb.insert(i,"b");str=sb.toString();break; case '3':sb.delete(i,i+1);sb.insert(i,"c");str=sb.toString();break; case '4':sb.delete(i,i+1);sb.insert(i,"d");str=sb.toString();break; case '5':sb.delete(i,i+1);sb.insert(i,"e");str=sb.toString();break; case '6':sb.delete(i,i+1);sb.insert(i,"f");str=sb.toString();break; case '7':sb.delete(i,i+1);sb.insert(i,"g");str=sb.toString();break; case '8':sb.delete(i,i+1);sb.insert(i,"h");str=sb.toString();break; case '9':sb.delete(i,i+1);sb.insert(i,"i");str=sb.toString();break; } } System.out.println(str); } }

gumgumgum
質問者

お礼

またまたご回答ありがとうございます! とてもわかりやすいです。 一度やってみます。

  • kt1965
  • ベストアンサー率34% (116/339)
回答No.1

>この「1,2,3,4,5」の「12345」の数値を「abcde」に割り当てる方法はあるのでしょうか? Javaの標準I/Oストリームクラスの中にはありません。 よって、次の方法 >また、方法がない場合、「,」を含んで区切られた数値を別々に分けてaとb割り当てる方法はありますか? に関しては、例として"Exploring JAVA"という書籍などにも出ているように、標準ストリームクラスを活用して、privateのストリームクラスを作ればよいでしょう。 手元にある本(1996年11月)はかなり古いのですが、一応、簡単なストリームクラスの作り方が出ていますので、最近のJAVA入門書にも出ていると思います。

gumgumgum
質問者

お礼

ご回答ありがとうございます! 参考にさせていただきます

関連するQ&A