2017-02-15 10 views
0

계좌 확인 수식 그림. 자바 계좌 번호 확인

Account Validation formula picture

안녕

,

나는 사진에 첨부 된 공식을 사용하여 계정 번호를 확인하도록하려합니다.

계좌 번호는 문자열로 표시됩니다. 마지막으로 위의 유효성 확인을 올바르게 수행 한 후에 올바른 계좌 번호를 확인하고 반환해야합니다.

계정 번호는 다를 것이다 그러나이 예를 들어 우리는 그냥 쉽게 계산을 수행 할 수 있도록 각 nt 데이터 형과 배열에 문자열을 모두 분리 관리해야 21412900192413. 으로 테스트 할 수 있습니다. 누구든지 그림을 위의 첨부 된 수식에 따라 계정을 확인하기 위해 이것을 완료하는 데 도움이 될 수 있습니까? 지금까지

내 코드 :

public static void main(String[] args) throws Exception { 
    System.out.println("test"); 
    String strAccount = "21412900192413"; 
    String fixedValues = "65432987654320"; 
    //for account number 
    String sampleString = strAccount; 
     String[] stringArray = sampleString.split(""); 
     int[] intArray = new int[stringArray.length]; 
     for (int i = 0; i < stringArray.length; i++) { 
     String numberAsString = stringArray[i]; 
     intArray[i] = Integer.parseInt(numberAsString); 
     } 
     System.out.println("Number of integers: " + intArray.length); 
     System.out.println("The integers are:"); 
     for (int number1 : intArray) { 
     System.out.println(number1); 
     } 

    //for fixed values 
    String sampleFixedValues = fixedValues; 
     String[] stringArray2 = sampleFixedValues.split(""); 
     int[] intArray2 = new int[stringArray2.length]; 
     for (int i = 0; i < stringArray2.length; i++) { 
     String numberAsString = stringArray2[i]; 
     intArray2[i] = Integer.parseInt(numberAsString); 
     } 
     System.out.println("Number of fixed values: " + intArray2.length); 
     System.out.println("The fixed values are:"); 
     for (int number2 : intArray2) { 
     System.out.println(number2); 
     } 


} 
+1

그래서 문제가 무엇인가요? –

+0

당신은'for' 루프를 사용할 수 있다는 것을 보여주었습니다. 이제 계정 번호 자릿수와 고정 값 배열을 반복하는 또 다른 루프가 필요합니다. 그런 다음 수표 수식을 구현해야합니다. 이것을 시도하고 접근 방식을 보여줄 수 있습니까? – Matt

+1

귀하의 질문에는 귀하의 문제가있는 곳을 정확히 물어 보는 것이 포함되어야합니다. 잠시 시간을내어 http://stackoverflow.com/help/mcve를 확인하십시오. – JChrist

답변

0

고마워, 난 마침내 그것을 얻었다. 이를 달성하기위한 더 쉬운 방법이 있다면 알려주십시오. 가능한 한 짧게하십시오. 여기

public static void main(String[] args) throws Exception { 
    System.out.println("test"); 
    boolean success = false; 
    String strAccount = "21412900192413"; 
    String fixedValues = "65432987654320"; 
    //for account number 
    String sampleString = strAccount; 
     String[] stringArray = sampleString.split(""); 
     int[] intArray = new int[stringArray.length]; 
     for (int i = 0; i < stringArray.length; i++) { 
     String numberAsString = stringArray[i]; 
     intArray[i] = Integer.parseInt(numberAsString); 
     } 
     System.out.println("Number of integers: " + intArray.length); 
     System.out.println("The integers are:"); 
     for (int number1 : intArray) { 
     System.out.println(number1); 
     } 

    //for fixed values 
    String sampleFixedValues = fixedValues; 
     String[] stringArray2 = sampleFixedValues.split(""); 
     int[] intArray2 = new int[stringArray2.length]; 
     for (int i = 0; i < stringArray2.length; i++) { 
     String numberAsString = stringArray2[i]; 
     intArray2[i] = Integer.parseInt(numberAsString); 
     } 
     System.out.println("Number of fixed values: " + intArray2.length); 
     System.out.println("The fixed values are:"); 
     for (int number2 : intArray2) { 
     System.out.println(number2); 
     } 
     //for total 
     int totalSum = 0; 
     int[] total = new int[stringArray2.length]; 
     for (int j = 0; j < stringArray2.length; j++) { 
      total[j] = intArray[j] * intArray2[j]; 
      System.out.println("Total: " + total[j]); 
      totalSum = totalSum + total[j]; 
     } 
     System.out.println("TotalSum: " + totalSum); 

     //Check Digit Formula = 10 – (Total Modulus 11/Total%11) 
     int digitFormula = 10 - (totalSum % 11); 
     System.out.println("digitFormula: " + digitFormula); 
     int lastNumber = intArray[intArray.length-1]; 
     System.out.println("lastNumber: " + lastNumber); 
     if(digitFormula == lastNumber){ 
      success = true; 
     } 
} 
0
public static void main(String args[]) throws Exception { 

     System.out.println("test"); 
     String strAccount = "21412900192418"; 
     String fixedValues = "65432987654320"; 
     // for account number 
     String[] stringArray = strAccount.split(""); 
     int[] intArray = new int[stringArray.length]; 
     for (int i = 0; i < stringArray.length; i++) { 
      String numberAsString = stringArray[i]; 
      intArray[i] = Integer.parseInt(numberAsString); 
     } 
     System.out.println("Number of integers: " + intArray.length); 
     System.out.println("The integers are:"); 
     for (int number1 : intArray) { 
      System.out.println(number1); 
     } 

     // for fixed values 
     String sampleFixedValues = fixedValues; 
     String[] stringArray2 = sampleFixedValues.split(""); 
     int[] intArray2 = new int[stringArray2.length]; 
     for (int i = 0; i < stringArray2.length; i++) { 
      String numberAsString = stringArray2[i]; 
      intArray2[i] = Integer.parseInt(numberAsString); 
     } 
     System.out.println("Number of fixed values: " + intArray2.length); 
     System.out.println("The fixed values are:"); 
     for (int number2 : intArray2) { 
      System.out.println(number2); 
     } 

     int total = calculateTotal(intArray, intArray2); 

     if (checkDigit(intArray, total)) { 
      System.out.println("Valid Account Number..."); 
     } else { 
      System.out.println("Invalis Account Number..."); 
     } 
    } 

    private static boolean checkDigit(int[] original, int total) { 
     int digit = 10 - (total % 11); 

     if (original[original.length - 1] == digit) 
      return true; 

     return false; 
    } 

    private static int calculateTotal(int[] original, int[] fixed) throws Exception { 
     if (original.length != fixed.length) { 
      throw new Exception("Account number length mismatch with Fixed Values."); 
     } 

     int total = 0; 
     for (int i = 0; i < original.length; i++) { 
      int multi = original[i] * fixed[i]; 
      total += multi; 
     } 
     return total; 
    } 

는 내 말에 시도하는 것이다. 희망이 도움이됩니다.

건배 !!!