簡體   English   中英

如何轉換數字並將其存儲在char數組中,然后將char數組轉換為String,以便輸出整數?

[英]How do you convert a number and store it in a char array and then convert the char array to String so that it prints the integer?

我有一個存儲有四個字符的char數組,我需要在char數組中添加一個整數,然后在if的末尾添加.txt,然后將整個內容呈現為字符串,以便可以使用它來創建文件對象。 但是,當我運行整個過程時,它不起作用。 使用println輸出每一步發生的事情,它向我展示了存儲在char數組中的數字正按以下方式打印為字符串:(0001)而不是僅此(1)。 為什么會這樣,我該如何解決? 我在這里鍵入了一段代碼的簡短版本來演示該問題。 下面的printline語句的輸出是:temp 0001 .txt而不是temp1.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);

  }
}

您無需費心使用字符數組。 Java通過String為您完成了大部分工作。 試試這個更簡單的代碼,創建10個文件名。 我認為您正在嘗試創建多個具有相同基本名稱的編號名稱的文件。

public class Test {
  public static void main(String[] args) {
    String baseName = "temp";
    String extension = ".txt";

    // create 10 file names
    for(int i=0; i<10; i++) {
      String newName = baseName + (i+1) + extension;
      System.out.println(newName);
    }
  }
}

注意i+1周圍的括號。 不帶括號, i1分別轉換為字符串,然后被壓縮為字符串。 例如,如果i5 ,則不帶括號的結果為51 ,而帶括號的結果為6

獎勵 :您可以像這樣用0填充數字部分:

String newName = baseName + String.format("%04d", i+1) + extension;

這樣,如果長度小於4,則編號的部分將填充零以使長度為4。但是,如果長度小於或等於4,則不會剝離數字。

例如: 45變為004512345入住12345

您嘗試分配給emp[count]值為ascii值1

你想要的是一個ASCII值1是49,所以你可以做

emp[count] = 49;

要么

emp[count] = 48 + 1;

要么

emp[count] = '1';

編輯根據您的注釋,如果您要執行的所有操作均創建了新文件名,則甚至不需要這些arrays

請參閱@ Code-Apprentice的答案

String file = base + 1 + extension;

請記住, +運算符專門與字符串配合使用。 最重要的是,當+的另一個操作數是String時,任何內容都會自動轉換為String 因此,您可以在一行中完成所有這些操作:

String file = base + 1 + extension;

請注意,此處1不是特殊的。 這是一個類型為int的值。 因此,您可以輕松地將其替換為變量名。

這將插入值為1而不是字符1的char。

emp[count] = (char)1;

嘗試以下方法:

emp[count] = '1';

編輯:如果您想要更動態

int i = ...
emp[count] = (char) ('0'+ i);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM