2016-09-22 42 views
-4

javaを初めて使用しています! 私は大文字のより多くの数のラインを維持するために必要なファイルから重複行を削除したいのですが、私は、テキストファイルには、次の単語が含まれている場合、このテキストファイルから重複する行を削除する方法

を達成するために使用できる機能

入力

カー

CaRの

のBU

バス

自転車

の予想される出力

CaRの

のBU

自転車

+2

可能な重複(http://stackoverflow.com/questions/996041/deleting -duplicate-lines-in-a-file-using-java) – DimaSan

+0

@DimaSanこれはあなたのリンクで答えられた以上のものです - "_、しかし大文字の数が多い行を保持する必要があります_"。 –

答えて

-1

はこれを試してみてくださいそのテキストを無視し、あなたの文字列

を比較する

static class Str { 

    final String origin; 
    final int uppers; 

    Str(String origin) { 
     this.origin = origin; 
     this.uppers = (int)origin.chars() 
      .filter(Character::isUpperCase) 
      .count(); 
    } 
} 

public static List<String> uniq(String file) throws IOException { 
    Path path = Paths.get(file); 
    List<String> lines = Files.readAllLines(path); 
    Map<String, Str> map = new LinkedHashMap<>(); 
    for (String e : lines) { 
     Str n = new Str(e); 
     map.compute(e.toLowerCase(), 
      (k, v) -> v == null || n.uppers > v.uppers ? n : v); 
    } 
    return map.values().stream() 
     .map(s -> s.origin) 
     .collect(Collectors.toList()); 
} 

System.out.println(uniq("test.txt")); 

結果:[Javaを使用してファイル内の重複行を削除する]の

[CaR, BUs, bike] 
+0

ぴったりの答え何を探していますか – Gpn008

-2

あなたが最初のテキストファイルを読み込み、文字列

のリストにテキストの各行を格納し、あなたが

str1.equalsIgnoreCase(STR2)を使用することができますすることができます。それがtrueを返す場合だけ

+0

"_しかし、大文字の数が多い行を残す必要があります_" ... –

+0

しかし、私は大文字の数を多くして行を維持する必要があります(あなたはこの行を元の質問では決して言及しません)これは私があなたの質問に合っているかどうかは、あなたが英語を理解していない場合は試してみてください。 –

+0

1)私は質問を執筆していませんでした。 2)元の質問には、この正確な行が含まれています - http://stackoverflow.com/revisions/39639481/1を参照してください。 –

関連する問題