2016-12-25 17 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()); 
    } 
}); 

次に何をすればよいですか?私はそれが "2"、 "5"、 "6"のような配列に格納する必要がありますと思う場合、私はそこからテキストを分割することができます。

EDIT: だから、ジェイク・ミラーの助けを借りた後、私が持っている:

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

詳細が必要です。数字は常に1桁ですか? – DarkV1

+0

いいえいいえ、長さは任意です – wolverine961

+0

すぐに解析しないでください。入力をStringに格納し、ループを使用して.substring()を使用してStringの各文字を調べ、個々の数値を解析してint配列に格納します。 –

答えて

1

すぐに解析しないでください。入力をStringに格納し、ループを使用して.substring()を使用してStringの各文字を調べ、個々の数値を解析して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

EDIT

を、あなたがチェックを持っている必要があります負の数を示す文字「 - 」。次に、substring(i, i+2)を使用して、1つの文字( - と数字自体)とは対照的に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例で私をインクリメントする必要があることを意味しており、2つの文字を使用しています。最初の3文字は " - "と等しくないので、単に解析されてvalues配列に格納されます。 4番目の文字(3番目のインデックス)に達すると、文字は " - "になります。したがって、if文は、-3と同じになります。

+0

ありがとう!私はそれが働いた... – wolverine961

+0

いいえあなたはこのように解析する必要があります:Integer.parseInt(input.substring(i、i + 1)); – wolverine961

+0

@DontKnowMuchButGettingBetter申し訳ありません。モバイルでその答えを送ったので、間違ってその部分を残しました。 –

関連する問題