2016-08-04 50 views
0

私は、データがこのフォーマットである格納されたファイルdetails.txtを有する区切り文字なしの文字列をカンマ区切りの文字列に変換する方法は?

 "571955NandhithaF1975-12-222011-12-06Mumbai"  

列最初の6桁の一意のID、 名、(M/F)性別、DOB、接合日付、および場所 あります私はカンマ区切り文字を使って6列に分けなければなりません!! このタイプのデータを分割するには、この問題に

+0

I「はドンあなたのファイルスニペットからコンマが見えません。これまでにMapreduceを使って何を達成しましたか? – waltersu

+0

@waltersu彼はカンマ区切りの文字列を生成したいと考えています。 – JimHawkins

+0

@JimHawkinsまさに、私の意見がありました。私はこのコンマ区切りのデータをmap reduceで処理しなければなりません。 –

答えて

0

571955NandhithaF1975-12-222011-12-06Mumbai

を助けてください、私たちは、マップ法の下でマッパークラスにJavaで文字列関数を使用する必要があります。あなたは、文字列からのIDを取得するsubstring(beginindex,endindex)メソッドを使用することができます
その IDです。

(IDは固定長であるため、我々は6を取る)あなたは、文字列を残り得るためにsubstring(beginindex)を使用することができます6桁の文字列を返しますstring id[6]=substring(0,5)のような。

次は、REGXPをjavaに入れて、split(regexp)と一緒に名前、性別、dob、doj、locを取得する必要があります。
しかし、確かにいくつかのワークアウトは、Javaで行われます。

は、この記事が役立つかもしれthis link for String functions in java.



希望を通過します。 同様に、任意の提案や修正も受け入れられる場合:)

+0

ありがとう.. !!!!私はそれにチェックしましょう –

1

パス以下のロジックを含む正規表現関数に各ライン:

String expression = "571955NandhithaF1975-12-222011-12-06Mumbai"; 

    Pattern pattern = Pattern 
      .compile("([0-9]{6})([a-zA-Z]+)([M|F])([0-9]{4}-[0-9]{2}-[0-9]{2})([0-9]{4}-[0-9]{2}-[0-9]{2})([a-zA-Z0-9]+)"); 
    Matcher matcher = pattern.matcher(expression); 
    if (matcher.find()) { 
     //System.out.println(matcher.group()); 
     System.out.println(matcher.group(1)); 
     System.out.println(matcher.group(2)); 
     System.out.println(matcher.group(3)); 
     System.out.println(matcher.group(4)); 
     System.out.println(matcher.group(5)); 
     System.out.println(matcher.group(6)); 
    } 

出力:

571955 
Nandhitha 
F 
1975-12-22 
2011-12-06 
Mumbai 
関連する問題