2017-01-24 17 views
-2

特定の文字列インデックスの文字を整数に変換しようとしています。文字列のインデックスを整数に変換する

これは私が持っている機能である:

残念ながら
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)でこの機能をテストするとき、私はすべてのヘルプははるかに高く評価されるだろう

[[email protected] 

を得ました。

+0

結果を出力するために使用するものは何ですか? –

+0

System.out.println(digitsOfPi(3)); – statsguyz

+0

配列オブジェクトIDを出力して、配列をループして要素を出力します。 –

答えて

0

あなたは第三の位置にある要素を取得するためSystem.out.pritln(digitsOfPi(3)を使用しているが、実際にそのだから代わりに、次のコードを使用しようとint

の配列を返す -

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

ありがとうございますが、特にこのメソッドがint配列を返す必要があります。 – statsguyz

+0

@statsguyzこれからintを取得することができます – Razib

3

使用Arrays.toString(arg)

...かなりの結果出力を得るには [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'; 
+0

それは動作しません。私は[-1、-1、1]を得る。 – statsguyz

+0

あなたが配列に持っているものは何ですか?待って、私は関数自体を見てみます –

+0

答えの2番目の部分で解決されると思います –

関連する問題