来自String的int []或来自char []

时间:2016-08-27 10:22:35

标签: java arrays string char int

我想要做的是取一串数字,如“8675309”,然后根据字符串中的不同数字做一些数学运算。我很乐意得到8,6,7,5,3,0,9然后使用索引,但它们似乎给出了奇怪的数字(如51)到目前为止。我只想结束myArray [0] + myArray [3] =输出(这个例子是8 + 5 = 13)

我拥有6本关于Java的书,但没有一本涵盖这本书。网上6个多小时(google,stackoverflow,youtube,其他),我无处可寻。 - 无论我如何搜索,我都能获得所有结果。

从已经填充的数组,到已经分隔的字符串,丢弃除字符串中的数字等所有内容...

我尝试使用/修改我发现的内容,并且我能想到的最好的东西让我大吼大叫说将char转换为int是不可能的。

    String str = cn;
    char[] charArray = str.toCharArray(); 

    String number = String.valueOf(cn);
    int[] digits1 = number.toCharArray();

    int newInt = charArray[0];  
    System.out.println(newInt);

“线程中的异常”main“java.lang.Error:未解决的编译问题:     类型不匹配:无法从char []转换为int []“

2 个答案:

答案 0 :(得分:2)

您可以通过调用Character.digit(myChar, 10)将表示十进制数字的单个char转换为int。在循环中调用此方法,以获取从toCharArray()获取的结果,以构建所需的int s数组:

String str = cn;
char[] charArray = str.toCharArray(); 
int[] digits = new int[charArray.length()];
for (int i = 0 ; i != digits.length() ; i++) {
    digits[i] = Character.digit(charArray[i], 10);
}

答案 1 :(得分:0)

您可以通过将此字符串转换为字符数组,然后将每个字符解析为数字来获取此类字符串中的单个数字。

    String text = "8675309";
    char[] characters = text.toCharArray();
    List<Integer> digits = new ArrayList<>();

    for(char character : characters) {
        digits.add(Character.getNumericValue(character));
    }

您可以通过遍历列表来访问每个数字。