簡體   English   中英

如何驗證Java中某個位置的大量整數是否是某個值?

[英]How do I verify that an integer value within a large number in a certain position is a certain value in Java?

我到處搜索,看到不同的差異。 但是,似乎兩者都不適合我:(因此,在Java中,如何檢查大整數某個位置的值?我想進行檢查以確保任何數字(如678954)中的第一個位置的值為4。內置Java類是否可以檢查某個位置內整數的值?我想為此內置一個類似.charAt的東西嗎?像下面一樣,我要確保整數中的第一個位置為'0'。如果我錯過了之前對同一問題的先前回答,請原諒。如果可以的話,您可以從中將鏈接發布到Stackoverflow嗎?哦,我看到了有關Character.getNumericValue的內容,我嘗試過並得到了相同的“ int不能被取消引用”錯誤。

if(getEmployeeId()。charAt(0)=='0')

干杯!

String str = Integer.toString(getEmployeeId());
if(str.charAt(str.length() - 1) == '0')

或者,使用mod

if (getEmployeeId % 10 == 0)

您可以應用數學技能,並使用/%來檢查數字而不將其轉換為字符串:

if (num % 10 == 4) {
    // The last digit is 4
}

if ((num/1000) % 10 == 7) {
    // Digit at position 4 is 7
}

想法是通過將數字的十進制表示除以10的冪來“移位”,然后通過除以10后的余數來計算得出最后一位。

如果我理解正確,請查看@Louis Wassermans的答案。 您需要先將int轉換為字符串,才能使用charAt()檢查值。 我不認為charAt()可用於int。

您的問題是在Java中整數存儲在二進制中。 例如,數字678954將為10100101110000101010。

如您所見, 10100101110000101010里面沒有字符“ 4”。 相反,您應該做的是將整數轉換為字符串,以便對其進行字符串操作。

一種簡單的方法是使用Integer.toString(aInt)首先將整數轉換為字符串。

嘗試從更改代碼

if(getEmployeeId().charAt(0) == '0')

if(Integer.toString(getEmployeeId()).charAt(0) == '0')

暫無
暫無

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

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