2017-11-18 5 views
0

ここでは、.csvを文字列に変換して、各値を変数に格納する必要があります。これを行うために文字列を正しく解析する方法がわかりません。次の区切り文字を見つけるための文字列の解析 - 処理

私の考えは、私はそれを

nextItem("45,621,9", 0); 

のようなものを渡された場合それは

と私はそれを渡された場合を返します

final char delim = ','; 

int nextItem(String data, int startFrom) { 
    if (data.charAt(startFrom) != delim) { 
     return data.charAt(startFrom) 
    } else { 
     return nextItem(data, startFrom + 1); 
    } 
} 

のように見えるの関数であります

nextItem("45,621,9", 3); 

それは私が正しくセットアップが再帰することを持っている場合、私はわからないんだけど、私はまた私が唯一の本当の規定は、私が使用することはできませんです、と仮定ループのために使用することができます621

を返しますサブストリングメソッド。

答えて

0

繰り返しを簡単に行うことができるように再帰を使用しないでください。再帰はスタックと呼び出しフレームの点で高価です。非常に長い文字列はStackOverflowErrorを生成する可能性があります。

私はあなたが標準的な方法にjava.lang.StringindexOfを見てみましょうお勧め:

0

良い代替が正規表現です。 あなたは

コード

String[] nextItem(String data) { 
    String[] words=data.split(","); 
    return words;  
} 

区切り文字としてこれはあなたの入力文字列内の単語である文字列の配列を返します「」カンマを考慮した単語を区切ることができます。とにかく、必要に応じて配列を使用することができます。

はそれがお役に立てば幸いです。)

0

処理はあなたが記述している正確に何をしsplit()機能が付属しています。

the referenceから

:それはH. Sodi's answerようString#split()機能を使用しています舞台裏

String men = "Chernenko,Andropov,Brezhnev"; 
String[] list = split(men, ','); 
// list[0] is now "Chernenko", list[1] is "Andropov"... 

、しかし、あなたは自分自身を定義するのではなく、この機能を使用する必要があります。

関連する問題