2017-05-12 10 views
5

すべてのUnicodeシンボル\ u6000〜\ u7000(1000シンボル)を出力するプログラムを作成しようとしています。私のプログラムは50文字を印刷し、改行を開始し、50行以上を印刷します(問題はありません)。特定の範囲内でユニコード記号を印刷するにはどうすればよいですか?

私はUnicodeシンボルを印刷する方法を知っていますが、インクリメンタルに印刷する方法(毎回1つ追加する方法)はわかりません。私は\uが数字で完成されていないため、「無効なUnicodeを」と言って、私は"\u"+iを入力した私のprint文、上のエラーを取得する

public class UnicodePrinter { 
    public static void main(String args[]) { 
     for (int i = 6000; i<7000; i++) { 
      if(i%50 == 0) { 
       System.out.println(); 
      } 
      System.out.print("\u"+i); //issue here, see below 
     } 
    } 
} 

が、私はそれを修正する方法は考えている。ここに私のプログラムです。

答えて

8

をちょうどこのように、直接char Sを生成します。

public class UnicodePrinter { 
    public static void main(String args[]) 
    { 
     for (char i = '\u6000'; i < '\u7000'; i++) { 
      if (i % 50 == 0) { 
       System.out.println(); 
      } 
      System.out.print(i); //issue here, see below 
     } 
    } 
} 
+1

これは実際に正しい答えです。ループ内で使用される値は1つだけです。 –

+0

@AdrianShumあなたは正しいです。私は自分のコードを改訂しました。 –

+0

コードに問題があると、コンソールフォントが必要なUnicode文字をサポートしていない可能性があります。その場合、文字を(UTF-8でエンコードされた)ファイルに出力することができます。 –

-1

だけ進に変換した後のcharにキャスト:

for (int i = 6000; i<7000; i++) { 
    if(i%50 == 0) { 
     System.out.println(); 
    } 
    char c = (char) Integer.parseInt(String.valueOf(i), 16); 
    System.out.print(c); 
} 
+0

私はそれをdownvoteていなかったが、私が試しましたコードを実行し、疑問符しか印刷しません。 –

+0

私は同じ出力を得ます - それらは正しい文字ではありません。 'System.out.println(" \ u6000 ");'私はこの出力が正しいと思います。 –

+0

おっと、私の悪いです。それは正しいです、あなたの答えをありがとう – CodingNinja

関連する問題