2017-05-01 27 views
1

2進数を対応する値に変換するコードを作成しています。文字列の複数の文字を複数の異なる文字に置き換えます

たとえば、私は "3"を入力し、コードは "3"のバイナリ表現である "11"に数値を変換します。コードは "11"を "one one"に変換して出力します。

私は既にバイナリ変換部分を書いていますが、それを単語に変換するのは難しいです。

public class BinaryWords { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Scanner sc = new Scanner(System.in); 
     String S = sc.nextLine(); //how many times the for loop will repeat 
     for (int i = 0; i < S.length() + 1; i++) { 
      int A = sc.nextInt(); //input the number 
      String convert = Integer.toBinaryString(A); //converts the number to binary String 
      String replace = convert.replaceAll("[1 0]", "one, zero "); //replaces the String to its value in words 
      System.out.println(replace); 
     } 
    } 
} 

Iは、次のフィールドで指定された配列に1と0、(と思う)が(両方?)を変換する[0、1]の正規表現とでReplaceAll関数を使用してみました。

私はすべて1を "1"に、すべて0を "ゼロ"に変換したいと思います。

すべてのヘルプは高く評価され、感謝!あなたは正規表現を使用する必要がいけない

答えて

2

、あなたはあなたの問題を解決するために置き換える2を使用することができます

String replace = convert.replace("1", "one ").replace("0", "zero "); 

例:

int i = 55; 
System.out.println(Integer.toBinaryString(i)); 
System.out.println(Integer.toBinaryString(i).replace("1", "one ").replace("0", "zero ")); 

出力

110111 
one one zero one one one 
+1

感謝! 1行に複数の置換文字を使用できるかどうかはわかりませんでした。 – Glace

+0

はいリターン文字列を置き換えるために@Glaceできます –

関連する問題