【问题标题】:extracting integer at each positions from a string S [duplicate]从字符串S中提取每个位置的整数[重复]
【发布时间】:2016-08-23 17:08:56
【问题描述】:

我在 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

但这似乎不起作用。

【问题讨论】:

  • int x=s.charAt(i)-'0'; 呢?
  • 您是否尝试过使用Integer.valueOf()
  • Character.getNumericValue()...

标签: java string


【解决方案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;
}

【讨论】:

    【解决方案2】:

    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
    }
    

    【讨论】:

      【解决方案3】:

      从另一个堆栈溢出响应中获取此信息:Java: parse int value from a char

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

      【讨论】:

      • 一旦你有足够的声望,你可以将问题标记为重复。另外,另一个答案已经提供了该解决方案。
      • 哦,太棒了,希望我很快就会到那个时候。我一定同时在研究答案。
      【解决方案4】:

      您只需使用 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));
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-19
        • 2019-01-17
        • 1970-01-01
        • 1970-01-01
        • 2015-11-30
        • 1970-01-01
        • 2018-12-14
        • 1970-01-01
        相关资源
        最近更新 更多