将字符串索引转换为整数

时间:2017-01-24 18:02:59

标签: java string char int

我试图将特定String索引处的字符转换为整数。

这是我的功能:

<iframe src='@Url.Action("GetPDF","BillPayment", new { id = @Model.ROIAgreementApplication })' width="100%" height="1000" frameborder="0" />

不幸的是,当我用public int[] digitsOfPi(int n) { { String piDigits = Double.toString(Math.PI); int[] piArray = new int[n]; for (int i = 0; i < n; i++) { piArray[i] = Character.digit(piDigits.charAt(i), n);; } return piArray; } } 测试这个函数时,我得到了

digitsOfPi(3)

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

使用Arrays.toString(arg)

System.out.println(Arrays.toString(digitsOfPi(3)));

...获得漂亮的结果输出 [1, 2, 3]

您打印的内容是对数组的引用,而不是其内容。这就是为什么我首先询问你输出结果的方式。

Character.digit()的签名是(char ch, int RADIX)。所以你使用三元数系统或如何调用它。此外,当char ch不包含有效数字时,它会返回-1,因此3.1415...就是[invalid, invalid, 1]。您需要使用10作为参数并跳过第2个位置。 或者你可以简单地做

piArray[i] = piDigits.charAt(i) - '0';

答案 1 :(得分:0)

您正在使用System.out.pritln(digitsOfPi(3)将元素置于第3位,但实际上它返回的数组为int

因此,请尝试使用以下代码段 -

    public static int digitsOfPi(int n) {
       String piDigits = Double.toString(Math.PI);
       char[] array = piDigits.toCharArray();
       return Character.getNumericValue(array[3]);
   }