簡體   English   中英

你如何計算int中的位數?

[英]how do you count the number of digits in an int?

我一直在努力嘗試找出一種方法來計算 2 的數量,或者你想找出一種方法來計算 2 的數量並在 int 中打印 2 的數量。

如果我輸入一個像 3552342343 這樣的隨機數,我正在尋找 3,我希望它打印 4,因為它們是 4 個 3。

您可以使用 split 查找所有匹配項

String number = "128";
String digit = "2";
// expensive but simple.
int matches = number.split(digit).length - 1;

假設你想使用一個循環和類似 contains 的東西。

// no objects
char digit = '2';
int count = 0;
for (int pos = number.indexOf(digit); pos >= 0; pos = number.indexOf(digit, pos + 1)
     count++;

這會更快,但並不那么簡單。

正如@Kon 建議您可以遍歷字符

char digit = '2';
for (char ch : number.toCharArray()) // creates an object
    if (ch == digit)
        count++;

或者

// no objects
char digit = '2';
for (int i = 0; i < number.length(); i++)
    if (number.charAt(i) == digit)
        count++;

String 有一些有趣的運行時優化,我懷疑第二種方法是最快的,盡管你必須測試它來檢查。

暫無
暫無

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

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