2016-04-26 16 views
-3

2行のファイルがあり、最初の行がBookType#BookName#Dateで分割され、2行目がBookType#BookName#Dateであった場合、最初の行は特に、最初の行と2行目の日付の両方に '日付'という名前の変数を設定した場合です。ファイル内の特定の変数を取得する方法

if (fields[0].equals("A")) 
{ 
    ur.setBookType(fields[0]); 
    ur.setBookName(fields[1]); 
    ur.setDate(fields[2]); 
} 
else if (fields[0].equals("B")) 
{ 
    ur.setBookType(fields[0]); 
    ur.setBookName(fields[1]); 
    ur.setDate(fields[2]); 

ファイルの例

A#James and the Giant Peach#01-20-2013 
B#Harry Potter#02-20-1990 
+1

あなたの質問を理解できません。特に「両方の日付に変数を設定する」のは意味がありません。私たちに具体的な例とあなたが試したことを見せてください。 –

+0

さて、私はそれを編集しました、申し訳ありません。 – jkjk

+0

入力ファイルと期待される出力を表示してください。 –

答えて

1

される(これは、最初の行と行のフィールドに日付を想定している異なっている)あなたは行ごとに日付を取得する必要がありますか?質問は明確ではありませんが、もしそれならば、以下のコードを使用することができます。

int LastNoSignPosition = line.lastIndexOf("#"); 
String date = line.substring(LastNoSignPosition+1, line.length()); 

次に、次の広告申込情報をループします。

EDIT:10日付を想定している

int firstNoSign = line.indexOf("#"); //get position of 1st # 
int secondNoSign = line.indexOf("#", firstNoSign+1); //get position of 2nd # 
int thirdNoSign = line.indexOf("#", secondNoSign+1); //get position of 3rd # 

String date = line.substring(thirdNoSign, thirdNoSign+10); 

は前後の番号記号を取得できない場合は、10文字で同じdd-mm-yyyy形式で常にあります。日付または#が存在しない場合は、範囲外のキャッチを追加します。

+0

を繰り返して、行ごとに個々のオブジェクトエンティティを比較できます。すべての行に日付があります。私はちょうど例としてそれらを入れていた。これらは日付の付いた唯一のもので、後の行はちょうど余分なデータです。したがって、その行1、余分なデータ、2行目、余分なデータ – jkjk

+0

値がない場合は、型、名前、日付を表す1行に3つの数字記号が常に表示されますか? BookType#BookNameと同じですか? –

+0

私が投稿した2の場合は、bookType、bookName、Dateの同じフォーマットになります。途中のデータは5#になります。 – jkjk