我想要做的是取一串数字,如“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 []“
答案 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));
}
您可以通过遍历列表来访问每个数字。