1

10,000 行の大きなファイルがあり、各行の最後に日付が追加されています。行内のすべてのフィールドはタブで区切られています。利用可能な日付は 10 個あり、それらの 10 個の日付は 10,000 行すべてにランダムに割り当てられています。私は現在、同じ日付のすべての行を別のファイルに書き込むJavaコードを書いています。各ファイルには、その日付に対応する行があります。

文字列操作を使用して実行しようとしていますが、日付に基づいて行を並べ替えようとすると、日付に言及しているときにエラーが発生し、リテラルが範囲外であるというエラーが表示されます。これが私が使用したコードです。これが正しいアプローチであるかどうかをお知らせください。そうでない場合は、より良いアプローチを提案してください。データ型を Long に変更しようとしましたが、それでも同じエラーが発生します。ファイルの行は次のようになります。 各フィールドはタブで区切られており、フィールドは次のとおりです。

ビジネス ID、カテゴリ、都市、ビジネス名、経度、州、緯度、タイプ、日付

**

qarobAbxGSHI7ygf1f7a_Q ["サンドイッチ","レストラン"] Gilbert Jersey Mike's Subs -111.8120071 AZ 3.5 33.3788385 business 06012010

** コードは次のとおりです。

    File f=new File(fn);
    if(f.exists() && f.length()>0)
    {
    BufferedReader br=new BufferedReader(new FileReader(fn));
    BufferedWriter bw = new BufferedWriter(new FileWriter("FilteredDate.txt"));

        String s=null;
        while((s=br.readLine())!=null){
            String[] st=s.split("\t");

            if(Integer.parseInt(st[13])==06012010){ 

お時間をありがとうございました..

4

2 に答える 2

0

これを試して、

List<String> sampleList = new ArrayList<String>();
        sampleList.add("06012012");
        sampleList.add("06012013");
        sampleList.add("06012014");
        sampleList.add("06012015");

///

///

    String[] sampleArray = s.split(" ");
                if (sampleArray != null)
                {
                    String sample = sampleArray[sampleArray.length - 1];

                    if (sampleList.contains(sample))
                    {
                        stringBuilder.append(sample + "\n");
                    }
                }
于 2013-08-22T07:08:37.760 に答える