簡體   English   中英

Java:從INT的其余部分拆分最后一位數字

[英]Java: Split last digit from the rest of the INT

我有下一個代碼,它得到一個數字,我需要將該數字拆分為部分,firstPart應該是沒有最后一個數字的整數,而secondPart應該只是原始數字的最后一個數字。

public Boolean verificationNumberFiscalId(String fiscalId) {

        // Trying to do a better wa yto do it
        Integer firstPart = fiscalId.length()-1;
        Integer secondPart = ??????????;



        // My old logic
        String NitValue = "";
        for (Integer i = 0; i < fiscalId.length()-1; i++) {
            NitValue = fiscalId.substring(i,1);
        }

        Integer actualValueLength = fiscalId.length()-1;        
        String digitoVerificador = fiscalId.substring(actualValueLength,1);
        return this.generateDigitoVerification(NitValue) == digitoVerificador;
    }
    /** 
     * @param nit
     * @return digitoVerificador
     * @comment: Does the math logic
     */
    public String generateDigitoVerification(String nit) {        
        Integer[] nums = { 3, 7, 13, 17, 19, 23, 29, 37, 41, 43, 47, 53, 59, 67, 71 };

        Integer sum = 0;

        String str = String.valueOf(nit);
        for (Integer i = str.length() - 1, j=0; i >= 0; i--, j++) {
            sum += Character.digit(str.charAt(i), 10) * nums[j];
        }

        Integer dv = (sum % 11) > 1 ? (11 - (sum % 11)) : (sum % 11);
        return dv.toString();
    }

你能告訴我一個更好的方法嗎? 謝謝!

int x = 1343248724;
int firstpart = x/10;
int secondpart = x%10;

System.out.println(firstpart);
System.out.println(secondpart);

Mod(%)給出剩余部分,如果你修改10 Divide將丟棄最后一個數字,它將是最后一個數字。 這樣你就不必實際搜索字符串。

做所有長度的事情對我來說似乎有些過分

哦,並將你的參數作為我將使用的int

Interger.decode(fiscalId);

這是你如何得到整數:

Integer firstPart = Integer.valueOf(
                        fiscalId.substring(0,fiscalId.length()-1));
Integer secondPart = Integer.valueOf(
                        fiscalId.substring(fiscalId.length()-1));

但我建議改為:

int firstPart = Integer.parseInt(fiscalId.substring(0,fiscalId.length()-1));
int secondPart = Integer.parseInt(fiscalId.substring(fiscalId.length()-1));
  1. 將您的號碼轉換為字符串。 使用String.valueOf()
  2. 將該字符串拆分為兩個字符串。 首先,查看原始字符串的長度。 對於長度n ,使用它的子串(0,n-1)作為第一個新字符串。 將最后一個字符(n)用於第二個字符串
  3. 使用Integer.valueOf()將兩個字符串轉換回整數。

暫無
暫無

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

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