ファイルの解析に関する質問があります。あなたは約30すべての行に異なる文字列を持っているラインのあるスイッチケースvs. If、複数の文字列を比較する場合else
while(scan.hasNextLine()){
line = scan.nextLine();//this gets the whole line
if(line.contains("SomeDataIKnow"){
data = new Scanner(line).useDelimiter("=");//scans just the one line
value = data.next();//sets value to the string right after the =
this.Data1 = value;
}
else if(line.contains("DifferentDataIKnow"){
data = new Scanner(line).useDelimiter("=");
value = data.next();
this.Data2 = value;
}
マインドは、ステートメントが含まれています。ここに私はファイルを解析そのように文の数が見えるものです。
各「=」の前の言葉は、等号の後には言いますが、後には言いません。だから私は特定のデータを探して、等号の後にそれらの値を取得して解析する必要があります。私は通常、2つまたは3つ以上のステートメントがある場合、ifステートメントを使用すべきではないことを知っています。誰かがそれを行う別の方法のアイデアを持っている場合、私は興味がありますか?おそらく私は思っていたが、30行で助けてくれるかどうかは分からないかもしれない。また、ファイルを視覚化するのに役立つ場合は、合計400本のラインがありますが、そのうち約30本が必要です。私が知っているchanges.THE DATAがだから私は
をNEED値を=という他の情報の
Device.Aバンチ:私は、ファイル内のファイルが、フルラインの例のようなものになるだろう投稿することはできません私は複数のファイルを解析し、データは変更されないDATA I KNOW部分を除いて変更され、必要な値を持つ行を見つけるために使用されます。申し訳ありませんが、これはすべて混乱するように思えます。
'contains'(または' startsWith'、 'endsWith'など)を使用しているときにswitch文を使用することはできません。スイッチは等価でのみ一致します。 –
すべての*有効な* **接頭辞**を配列に入れて反復することができます。 –
文字列を分割するために 'Scanner'を作成する必要はありません。他のアプローチの中でも' line.split( "=") 'を使うことができます。 –