1

4 文字が格納された char 配列があり、整数を char 配列に追加し、if の末尾に .txt を追加してから、全体を文字列としてレンダリングして、それを使用してファイル オブジェクトを作成できるようにする必要があります。 . しかし、プロセス全体を実行すると機能しません。println を使用してすべてのステップで何が起こっているかを出力すると、char 配列に格納されている数値が、この (1) ではなく ( 0001 ) として文字列に出力されていることがわかります。それはなぜですか、どうすれば回避できますか? 問題を示すために、ここにコードの一部の短いバージョンを入力しました。以下の printline ステートメントの出力は次のとおりです。取得しようとしている temp1.txt の代わりに temp 0001 .txt です。ご協力いただきありがとうございます。

public class Test {
  public static void main(String[] args) {
  int count = 4;
  char[] temp = new char[count + 5];
  char[] base = new char[] {'t', 'e', 'm', 'p'};

  char[] extension = new char[] {'.', 't', 'x', 't'};
  for (int i = 0; i < 4; i++)
     temp[i] = base[i];

  temp[count] = (char)1;
  for (int k = 0; k < 4; k++)
     temp[count + 1 + k] = extension[k];

  String file = new String(temp);

  System.out.println(file);

  }
}
4

4 に答える 4

1

1これにより、文字 1 の代わりに値を持つ文字が挿入されます。

emp[count] = (char)1;

代わりにこれを試してください:

emp[count] = '1';

編集:より動的にしたい場合

int i = ...
emp[count] = (char) ('0'+ i);
于 2016-02-17T02:30:41.080 に答える
1

割り当てようとしているemp[count]値は、1 の ascii 値です

あなたが望むのは、ASCII値1が49であるため、次のことができます

emp[count] = 49;

また

emp[count] = 48 + 1;

また

emp[count] = '1';

編集あなたのコメントによると、あなたがしようとしているのが新しいファイル名を作成することだけであれば、これらarraysは必要ありません。

@Code-Apprentice からの回答を参照してください

String file = base + 1 + extension;
于 2016-02-17T02:35:14.363 に答える
1

演算子は+、文字列を連結するために特別に機能することに注意してください。Stringその上、 のもう一方のオペランドが a の場合+、すべてが自動的に a に変換されStringます。したがって、これらすべてを 1 行で実行できます。

String file = base + 1 + extension;

ここで 1 は特別ではないことに注意してください。type の値ですint。そのため、代わりに変数名に簡単に置き換えることができます。

于 2016-02-17T02:38:29.077 に答える