如何将String数转换为int数组?

时间:2016-11-01 01:07:15

标签: java arrays

我正在尝试获取一个数字的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;
}
}

1 个答案:

答案 0 :(得分:0)

你可以这样做:

int[] numArray = new int[numDigits];
for (int i = 0; i < number.length(); i++)
{
  numArray[i] = number.charAt(i) - '0';
}