我正在尝试获取一个数字的String并将其转换为int数组。字符串的值是在generateNewSecret()
方法中创建的,我试图将此值转换为int数组,然后将其存储在实例secretNumber
中。实例numDigits值取自另一个类,在此处使用。方法convertNumToDigitArray
就是我用来做这个的方法,但我不能让它工作。我不断收到此错误消息:
java.lang.StringIndexOutOfBoundsException
感谢任何帮助。
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;
}
}
答案 0 :(得分:0)
你可以这样做:
int[] numArray = new int[numDigits];
for (int i = 0; i < number.length(); i++)
{
numArray[i] = number.charAt(i) - '0';
}