从字符串S中提取每个位置的整数

3

我在Java中将数字作为字符串接受,如S=1234。现在我想要获取s[0]、s[1]、s[2]、s[3]处的整数值。

for(int i=0;i<l;i++)// l is length of string s
    int x=s[i]-'0';// print this now

但是看起来这样并不起作用。

1
int x=s.charAt(i)-'0'; 的意思是什么? - Sergey Kalinichenko
你有试过使用Integer.valueOf()吗? - OneCricketeer
Character.getNumericValue()... 翻译为:获取数字值()函数。 - Alexis C.
4个回答

1
你可以使用charAt()方法来获取字符的整数值。
// Assuming you already have the Integer object "S" declared and assigned
int[] s = new int[Integer.toString(S).length()]; // create the integer array

for(int i = 0; i < Integer.toString(S).length(); i++)
{
  int x = Character.getNumericValue(S.charAt(i));
  s[i] = x;
}

1

Java字符串不仅是char数组,它们也是对象,因此您不能使用[]运算符。不过,您的想法是正确的,只是访问字符的方式不对。相反,您可以使用charAt方法:

for(int i = 0; i < l; i++) { // l is length of string s
    int x = s.charAt(i) - '0';
    // Do something interesting with x
}

0

从另一个堆栈溢出响应中获取了这些信息:Java:从char解析int值

int x = Character.getNumericValue(S.charAt(i));

一旦您的声望足够高,您就可以将问题标记为重复。此外,其他答案已经提供了解决方案。 - OneCricketeer
哦,太酷了,希望我很快就能达到那个水平。我一定是在同一时间里回答这个问题。 - aus

0
你可以使用Character.getNumericalValue()方法来将数字字符串转换为数字。以下是获取它的方法。
   String num = "1234";
    char[] a=num.toCharArray();
    ArrayList<Integer> p = new ArrayList<>();
    for(int i=0; i<a.length; i++){
        p.add(Character.getNumericValue(a[i]));
        System.out.println(p.get(i));
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接