プロが教えるわが家の防犯対策術!

質問させてください。

キーボード入力でもし、
1,2,3,4,5
←Enter

で入力するとき、この「1,2,3,4,5」の「12345」の数値を「abcde」に割り当てる方法はあるのでしょうか?

また、方法がない場合、「,」を含んで区切られた数値を別々に分けてaとb割り当てる方法はありますか?


ご回答よろしくおねがいします。

A 回答 (3件)

質問者さんのやりたいことを実装したソースコードを貼っておきます。


しかし、質問者さんの方法ですと、一桁の数字しかアルファベットに変換できませんが、その問題を解決する方法とソースコードは下記のソースコードを参考にご自分でお考えください。
なお、下記のソースコードに対する質問は受け付けさせていただきますので、いつでも返信ください。

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);
}
}
    • good
    • 0
この回答へのお礼

またまたご回答ありがとうございます!

とてもわかりやすいです。
一度やってみます。

お礼日時:2008/12/21 15:27

J2SE 6.0以降ならjava.io.Console#readLine(Strng, Object ...)を使えば出来ませんか

?(試してないです)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!

挑戦してみます。

お礼日時:2008/12/21 15:31

>この「1,2,3,4,5」の「12345」の数値を「abcde」に割り当てる方法はあるのでしょうか?



Javaの標準I/Oストリームクラスの中にはありません。

よって、次の方法
>また、方法がない場合、「,」を含んで区切られた数値を別々に分けてaとb割り当てる方法はありますか?

に関しては、例として"Exploring JAVA"という書籍などにも出ているように、標準ストリームクラスを活用して、privateのストリームクラスを作ればよいでしょう。

手元にある本(1996年11月)はかなり古いのですが、一応、簡単なストリームクラスの作り方が出ていますので、最近のJAVA入門書にも出ていると思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/12/21 15:23

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