int を char に変換して出力する際に問題があります。私は、グラフ理論(現在私がいるクラス)のためのプログラムを持っています。1つのことを除いて、すべてが正常に機能します。
さまざまな種類のグラフを作成するクラスがあります。グラフの Node を作成する Node クラスがあります。それらは値と名前を保持し、名前は int の文字値に基づく文字です。グラフが作成されると、各ノードはこのように作成されます
Node(String name, int value).
作成されるノードの例を次に示します。
int a = 97;
int alpha = a+i-1;
int alphaCnt = 0;
if(alpha < 123 && alphaCnt == 0){
String nodeName = Character.toString((char)alpha);
Node node = new Node(nodeName, i);
this.addnode(node);
}
これは完全に正常に機能します。名前は、i=1 の場合は「a」、i=2 の場合は「b」などになります。私が抱えている問題は、グラフの toString にコードを出力するときです。
最初は数字の配列だけを印刷していましたが、ノードを印刷すると、どの番号がどのノードに対応するか誰もわかりませんでした。ということで、このように数字の後に文字を追加することにしました。[2(b)、1(a)...5(e)]。
ただし、まったく同じ変換を使用しても機能しません。私のtoStringメソッド(その一部)。pCode は、コードの int 配列です。配列に入れたコードの各数値。
for(int i = 0; i < pCode.length; i++){
String x = Character.toString((char)(i+1));
if(i != pCode.length){
System.out.println(Integer.toString(pCode[i]) + "(" + x + ")");
System.out.println(x.toString());
System.out.println(Character.toString((char)(i+1)));
System.out.println(Character.toString((char)pCode[i]));
}
}
おそらく私の鼻の下に何かがありますが、私が何をしても、文字を数字で印刷することはできず、それ自体で印刷することさえできません。
ノードを作成すると Character.toString((char)intVal)) が機能するのに、int の文字値を出力したいだけの場合は機能しないのはなぜですか。