2016-12-25 15 views
0

어떻게 든 JTextField에서 텍스트를 배열에 저장 한 다음 합산하려고합니다.배열 및 합계에 JTextField 텍스트 저장 - Java

btn.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
    //fldi is the JTextField I want to get text from 
    int ii = Integer.parseInt(fldi.getText()); 
    } 
}); 

다음에해야 할 일은 무엇입니까? 어떻게 거기에서 텍스트를 나눌 수 있습니다, 예를 들어 사용자 입력이 "256"이라면 "2", "5", "6"과 같은 배열로 저장해야한다고 생각합니다.

편집 : 그래서 제이크 밀러의 도움이 후에 내가있어 :

String input = fldi.getText(); 
      int sum = 0; 

      int[] values = new int[input.length()]; 
      for(int i = 0; i < input.length(); i++) { 
      int number; 
      if(input.substring(i, i+1).equals("-")) { 
       number = Integer.parseInt(input.substring(i, i+2)); 
      } else { 
       number = Integer.parseInt(input.substring(i, i+1)); 
      } 
      values[i] = number;   
       sum = sum + values[i]; 
      } 

      fldwo.setText(Integer.toString(sum)); 

하지만 "-2"와 "-1"값 배열을 저장 4 개 값 "와 같은 음수를 할 때 -2 ","2 ","-1 ","1 "이며 끝에있는 합은 0이지만 -3이어야합니다.

+0

자세한 내용이 필요합니다. 숫자는 항상 한자리 숫자입니까? – DarkV1

+0

아니요 어떤 길이라도 가질 수 있습니다 – wolverine961

+0

즉시 구문 분석하지 마십시오. 문자열에 입력을 저장하고 .substring()을 사용하여 문자열의 각 문자를 통과하는 루프를 사용하고 각 개별 숫자를 구문 분석하고 int 배열에 저장합니다. –

답변

1

즉시 구문 분석하지 마십시오. 문자열에 입력을 저장하고 .substring()을 사용하여 문자열의 각 문자를 통과하는 루프를 사용하고 각 개별 숫자를 구문 분석하고 int 배열에 저장합니다.

String input = fldi.getText(); 
int[] values = new int[input.length()]; 
for(int i = 0; i < input.length(); i++) { 
    values[i] = Integer.parseInt(input.substring(i, i+1)); 
} 

가 입력 (256), 다음 배열이 3 개 값이 경우 : 2, 5, 음수 6

편집

을, 당신이 체크되어 있어야합니다 문자 "-"는 음수를 나타냅니다. 그런 다음 substring(i, i+2)을 사용하여 하나가 아닌 두 개의 문자 (- 및 숫자 자체)를 취합니다. 또한 배열이 필요 없습니다. 구문 분석 한 각 숫자를 합계에 직접 더할 수 있습니다. 또한 while 루프를 사용하고 i를 직접 증가시켜야합니다.

사용자 입력 125-35 : 음수를 찾아내는 경우에, 당신은 당신이 대신 1 :

int sum = 0; 
    int i = 0; 
    while(i < input.length()) { 
     int number; 
     if(input.substring(i, i+1).equals("-")) { 
      number = Integer.parseInt(input.substring(i, i+2)); 
      i += 2; 
     } else { 
      number = Integer.parseInt(input.substring(i, i+1)); 
      i++; 
     } 
     sum += number; 
    } 

예에 의하여 나는를 증가 할 필요가 의미하는 2 개 문자를 사용하고 있습니다. 처음 세 문자는 "-"와 같지 않으므로 단순히 구문 분석되어 값 배열에 저장됩니다. 네 번째 문자 (세 번째 색인)에 도달하면 문자는 "-"이되므로 if 문은 하위 문자열이 하위 문자로 반환 될 때 숫자가 -3과 같아 지도록합니다.

+0

감사! 나는 그것이 작동 했어 ... – wolverine961

+0

아니, 당신이 이렇게 구문 분석해야합니다 : Integer.parseInt (input.substring (i, i + 1)); – wolverine961

+0

@DontKnowMuchButGettingBetter 죄송합니다. 그 대답을 모바일에 보내서 우발적으로 그 부분을 떠났습니다. –