2013-12-09 3 views
1

나는 독자적으로 책을 통해 자바를 배우고 있는데 배열 값을 찾고 텍스트 파일에서 표시하기 위해 반복해야하는 다이어그램이 있습니다. 모든 필드는 잘 인쇄되었지만 분리 할 수는 없습니까?루프의 서식 지정 배열 값을 인쇄 하시겠습니까?

enter image description here

내가 직접 대답을하지 않아도

public static void main(String[] args) { 
    Scanner input = null; 
    File empFile = new File("employeesSalesRep.txt"); 
    String[][] empArray = new String[9][6]; 

    try { 
     input = new Scanner(empFile); 
     for (int outer = 0; input.hasNext() == true; ++outer) { 
      for (int inner = 0; inner < empArray[outer].length; ++inner) { 
       empArray[outer][inner] = input.next(); 
      } 

      if (empArray[0][4].equals("22")) { 

      } 


     } 
    } 

    catch (FileNotFoundException e) { 
     System.out.println("Cannot find file. File must be in your PROJECT folder!"); 
     System.out.println("System out print: " + e.getMessage()); 
     System.err.println(e.getMessage()); 
     System.exit(0); 
    } 

    finally { 
     input.close(); 
    } 

    System.out.printf("%-13s", "Emp #"); 
    System.out.printf("%-13s", "Last Name"); 
    System.out.printf("%-13s", "First Name"); 
    System.out.printf("%-13s", "MI"); 
    System.out.printf("%-13s", "Sales Rep"); 
    System.out.printf("%-13s", "Commision"); 
    System.out.println(); 
    System.out.printf("%-13s", "---------"); 
    System.out.printf("%-13s", "---------"); 
    System.out.printf("%-13s", "-----------"); 
    System.out.printf("%-13s", "---------"); 
    System.out.printf("%-13s", "----------"); 
    System.out.printf("%-13s", "-----------"); 
    System.out.println(); 

    for (int x = 0; x < empArray.length; ++x) { 

     if (empArray[x][0] == null) 
      break; 

     for (int i = 0; i < empArray[x].length; ++i) { 
      System.out.printf("%-13s", empArray[x][i]); 
     } 
     System.out.println(); 
    } 
} 

.. 나도 무슨의 아이디어를 가지고 있지만 단지 내가 원하는 일을 아니에요. 그냥 어떤 방향. 나에게 코드를 기반으로하는 조각을 주면 나는 나머지를 할 것이다. 나는 이것을 정말로 배우고 싶다.

은 (또한 합계를 축적하는 방법을 찾는 데 도움이 좋을 것!)

감사합니다.

편집 :
포맷 부분을 알아 냈습니다. 하지만 지금은 ...

enter image description here

+0

현재 출력물은 어떻게 생겼습니까? –

+0

수정 사항을 확인하십시오. 형식 지정을 알아 내기 –

+0

형식이 정확히 같으면 'Emp #'로 시작하지 않으면 전체 행을 스캔하여 해당 행을 인쇄하지 않는 것이 좋습니다. 그것이 가장 쉬운 방법입니다. 배열 필요 없음 : –

답변

0

을 문제의 값을 축적하는 데 문제가 왜 대신 배열에 저장하고 분할하여 총을 얻고 추가 ​​할 마지막 인덱스를 사용하는 선으로하지 방금 인쇄 라인을 쪽으로;

double total = 0; 

while (input.hasNextLine()){ 
    String line = input.nextLine(); 

    if ("".equals(line)){ 
     System.out.println(); 
    } else { 
     String[] split = line.split("\\s+"); 
     total += Double.parseDouble(split[5].trim()); // last index 
     System.out.println(line); 
    } 

    System.out.println("-- Total for ALL SALES " + total); 
} 
0

변수를 만들어 영업 담당자의 마지막 값을 추적 할 수 있습니다. 변경되면 (예 : 22 ~ 33) 추가 행을 인쇄하여 표를 분리합니다. total에 대한 변수를 추가하고 영업 담당자의 마지막 값을 변경할 때이를 0으로 재설정 할 수도 있습니다.

+1

그리고 코드 중복을 피하려면 해당 변수를 0으로 초기화하십시오. 이렇게하면 첫 번째 반복도 표제가 인쇄됩니다. 이렇게하면 표제를 인쇄하는 코드가 중복되는 것을 피할 수 있습니다. – denarced

관련 문제