簡體   English   中英

如何將 Java integer 的前三個字符替換為 111?

[英]How do I replace the first three characters of a Java integer by 111?

我在 java 中有一個 integer。 如何將其前三個數字替換為 111(或任何其他數字),例如將 783729 變為 111729? 非常感謝!

您可以將其轉換為字符串,然后替換前三個字母。

String s = String.valueOf(783729);
int i = Integer.parseInt(s.replace(s.substring(0, 3), "111"));

將 integer 轉換為字符串替換前三個字符並將其轉換回 integer。請嘗試自己做。 如果您在編碼過程中感到卡住,請發布您的代碼以及您面臨的問題。

您可以在不使用簡單算術轉換為字符串的情況下執行此操作:

// Assumes that num is initially at least 999.
int replaceWith111(int num) {
  if (num < 1000) {
    return 111;
  }
  return 10 * replaceWith111(num / 10) + (num % 10) 
}

顯然,如果您只需要完成此操作,您將轉換為String並在那里進行替換。

然而,只是為了好玩,這里是你可以只使用Math函數和運算符的方法。 不處理負數-留給讀者練習:)

int s = 111;
int n = 783729;

int ds = (int)Math.ceil(Math.log10(s));
int dn = (int)Math.ceil(Math.log10(n));
int b = (int)Math.pow(10, dn-ds);
int sn = s * b + n % b;

System.out.println(sn);

Output:

111729

暫無
暫無

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

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