2017-02-15 5 views
1

私はJavaにはかなり新しい、私のコースに約3週間です。私の割り当てでは、charAtを使用して文字列を14パートに分ける必要がありました。今私は追加を使用してこれらを一緒に追加する必要があります。Java文字に加えて

私は成功して何度も試してみました。私がそれらを一緒に追加してそれを印刷するたびに、それは私がそれよりも大きい数の方法を与えます。私はNUM1 + NUM2 + NUM3 + num4 + num5 + num6を追加すると

char num1 = roulette.charAt(0); 
char num2 = roulette.charAt(1); 
char num3 = roulette.charAt(2); 
char num4 = roulette.charAt(3); 
char num5 = roulette.charAt(4); 
char num6 = roulette.charAt(5); 

は、私はそれがあるべきよりも、道に大きな数を取得します。

何か不足していますか?

+0

あなたの完全なコードを提供してください:各文字は数字を表し、あなたが数字を追加したい場合は

しかし、あなたはこのような何かを行うことができます。 –

+1

文字を追加している場合は、その文字が表す数値ではなく、文字の(ASCII)値を追加します。 – AntonH

+0

https://stackoverflow.com/questions/4968323/java-parse-int-value-from-a-char – AntonH

答えて

1

これは、文字を一緒に追加することによるものです。これは自動的に数字に相当する数字にはなりません。あなたはそれを自分で変更する必要があります。これを行うにはInteger.parseInt(char)を使用し、それを一緒に追加することができます。たとえばInteger.parseInt(String.valueOf('1') + Integer.parseInt(String.valueOf('2'))、これは1 + 2が一緒になって、正しく今あなたが最初にこの

Integer.parseInt(num1) + Integer.parseInt(num2) +Integer.parseInt(num3)... 

などのようにしてみてください整数にあなたの文字をキャストすることはできません3結果としてではなく、12

+1

Javeは 'Integer.parseInt(String)'のみを表示しています。 – AntonH

+0

@AntonH訂正ありがとうございました – bwfcwalshy

0

を作る1に2を追加追加されますに。

EDIT

私はちょうどあなたがCharacterためInteger.parseInt(num1)を使用できないことを学びました。 あなたは以下のようにあなたの文字をキャストする必要があります。

char a = '5'; 
int b = Integer.parseInt(String.valueOf(a)); 

int c=b+b; 
System.out.println(c); //this will give 10 
+3

'Integer.parseInt(char)'は存在しません。 – AntonH

+0

あなたは正しいです、私はそれを知らなかった感謝,, –

1

あなたが文字に文字を追加した場合、それはあなたが彼らのascii値を追加していることを意味します。しかし、の中にCharacterとして表示されている数値を追加したい場合は、最初に文字を整数に変換する必要があります。以下の例を参照してください。

N.B.一連の値を追加する場合は、loopを使用します。

String roulette = "123456"; 
int sum = 0; 
for (int i = 0; i < roulette.length(); i++) { 
    sum = sum + roulette.charAt(i); 
} 
System.out.println("Sum : " + sum); 

sum = 0; 
for (int i = 0; i < roulette.length(); i++) { 
    sum = sum + Integer.parseInt(String.valueOf(roulette.charAt(i))); 
} 
System.out.println("Sum : " + sum); 

出力

Sum : 309 
Sum : 21 

ケース1:数値のASCII値を追加sum = sum + roulette.charAt(i);

。代わりに、ASCII値の数値を追加sum = sum + Integer.parseInt(String.valueOf(roulette.charAt(i)));

:だから合計は309

ascii_value('1') - 49 
ascii_value('2') - 50 
... 
ascii_value('5') - 53 
ascii_value('6') - 54 

Sum = 49 + 50 + 51 + 52 + 53 + 54 = 309 

ケース2です。したがって合計は21です。

Sum = 1 + 2 + 3 + 4 + 5 + 6 = 21 
0

文字を追加する場合、各文字には使用される文字コードがあります。たとえば、ASCIIテーブル 'a' = 97、 'b' = 98、 'c' = 99;したがって、これらを一緒に追加すると、294が得られます。ASCIIテーブルhttps://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html

char num1 = roulette.charAt(0); 
int firstNum = Integer.parseInt(Character.toString(num1)); 

char num2 = roulette.charAt(1); 
int secondNum = Integer.parseInt(Character.toString(num2)); 

char num3 = roulette.charAt(2); 
int thirdNum = Integer.parseInt(Character.toString(num3)); 

char num4 = roulette.charAt(3); 
int fourthNum = Integer.parseInt(Character.toString(num4)); 

char num5 = roulette.charAt(4); 
int fifthNum = Integer.parseInt(Character.toString(num5)); 

char num6 = roulette.charAt(5); 
int sixthNum = Integer.parseInt(Character.toString(num6)); 

int result = firstNum + secondNum + thirdNum + fourthNum + fifthNum + sixthNum; 
関連する問題