2016-11-01 14 views
0

私は数値であるStringをint配列に変換しようとしています。文字列の値はgenerateNewSecret()メソッドで作成され、この値をint配列に変換してインスタンスsecretNumberに格納しようとしています。インスタンスnumDigits値は別のクラスから取得され、ここで使用されます。メソッドconvertNumToDigitArrayはこれを行うために使用していますが、これを動作させることはできません。すべてのヘルプは高く評価されjava.lang.StringIndexOutOfBoundsExceptionString型の数値をint型の配列に変換する方法は?

:私は、このエラーメッセージを取得しておきます。

import java.util.Random; 

public class Engine 
{ 
private int numDigits; 
private int[] secretNumber = new int[numDigits]; 
private Random randomNumberGenerator = new Random(); 


public int[] convertNumToDigitArray(String number) 
{ 
    int numDigits = number.length(); 
    int[] convertNumToDigitArray = new int[numDigits]; 
    for(int i = 0; i <= numDigits; i++) 
    { 
     convertNumToDigitArray[i] = number.charAt(i); 
    } 
    return convertNumToDigitArray; 
} 

public int getNumDigits() 
{ 
    return numDigits; 
} 

public int[] getSecretNumber() 
{ 
    return this.secretNumber; 
} 

//creates a random number with a certain length that matches numDigits, 
// stores in a string value 
//Ex. numDigits = 3; secret = 647; 
public void generateNewSecret() 
{ 
    int secret = 0; 
    for(int i = 0;i <= numDigits; i++) 
    { 

    secret = secret * 10 + randomNumberGenerator.nextInt(9); 

    } 
    secret = secret/10; 
    String secretNum = Integer.toString(secret); 

    setSecretNumber(convertNumToDigitArray(secretNum)); 


} 


public void setNumDigits(int numDigits) 
{ 
    this.numDigits = numDigits; 
    secretNumber = new int[numDigits]; 
} 

public void setSecretNumber(int[] secretNumber) 
{ 

    this.secretNumber = secretNumber; 
} 
} 
+1

は 'I <= numDigits'私はnumDigits'を<'でなければなりません。 –

+0

投票の締切:offトピック、typo – Tibrogargan

+0

@Tibrogargan:率直に言って、これは私にとって誤解の根本的な欠如のように見えます。 –

答えて

0

あなたはこのようにそれを達成することができます:

int[] numArray = new int[numDigits]; 
for (int i = 0; i < number.length(); i++) 
{ 
    numArray[i] = number.charAt(i) - '0'; 
} 
関連する問題