2017-08-12 9 views
-4

それ自体が外部のファイルからJavaに供給される別の配列の一部である文字列配列を変換しようとしています。列に配列されたデータの配列から文字列データを変換する

この質問には2つの部分があります

  1. は、私はダブルスまたはint型に文字列の部分文字列の要素を変換する方法を教えてください。
  2. それ自体が文字列の一部であるヘッダーをスキップするにはどうすればよいですか?

次のコードは私に間違いを与えませんが、どちらも出力されません。データは列に配置されているので、分割までは、そのメソッドの引数としてどの区切り文字を使用するのかよく分かりません。私は\r, \n, ",", " "を試しましたが、何も動作しません。

str0 = year.split(",");       
year = year.trim();       
int[] yearData = new int[str0.length-1]; 

for(i = 0; i < str0.length-1; i++) { 
    yearData[i] = Integer.parseInt(str0[i]); 
    System.out.println(yearData[i]); 
} 
+2

を?それは正しく実行されています...? – clabe45

+3

あなたの入力の最小の例、出力が何であるべきか、どのようなエラーや現在の出力が得られるかをご記入ください。指導のためにこれをお読みください:[mcve] – tima

+0

あなたのプログラムが対処できると思われる入力を示してください。 –

答えて

0

ご提供いただいたコードは機能しません。とにかく、正規表現を使用しているこの例では、文字列内のすべての数字が見つかったので、正規表現はうまく動作します。正規表現を変更することで、頭部分をスキップできるだけでなく、部分文字列を取得することができます。私はそれが助けてくれることを望む。

String regEx = "[+|-]?(\\d+(\\.\\d*)?)|(\\.\\d+)"; 
    String str = "256 is the square of 16 and -2.5 squared is 6.25 “ + “and -.243 is less than 0.1234."; 
    Pattern pattern = Pattern.compile(regEx); 
    Matcher m = pattern.matcher(str); 
    int i = 0; 
    String subStr = null; 
    while(m.find()) { 
    System.out.println(m.group()); 
0

このような何か試してみてください:それは出力が表示されていない方法

year = year.trim(); // This should come before the split()... 
str0 = year.split("[\\s,;]+"); // split() uses RegEx... 
int[] yearData = new int[str0.length-1]; 

for(i = 0; i < str0.length-1; i++) { 
    yearData[i] = Integer.parseInt(str0[i]); 
    System.out.println(yearData[i]); 
} 
関連する問題