Hy,Usuwanie duplikatów kolejnych słów z tekstu przy użyciu regex i wyświetlanie nowy tekst
Mam następujący kod:
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.regex.*;
/
public class RegexSimple4
{
public static void main(String[] args) {
try
{
Scanner myfis = new Scanner(new File("D:\\myfis32.txt"));
ArrayList <String> foundaz = new ArrayList<String>();
ArrayList <String> noduplicates = new ArrayList<String>();
while(myfis.hasNext())
{
String line = myfis.nextLine();
String delim = " ";
String [] words = line.split(delim);
for (String s : words) {
if (!s.isEmpty() && s != null)
{
Pattern pi = Pattern.compile("[aA-zZ]*");
Matcher ma = pi.matcher(s);
if (ma.find()) {
foundaz.add(s);
}
}
}
}
if(foundaz.isEmpty())
{
System.out.println("No words have been found");
}
if(!foundaz.isEmpty())
{
int n = foundaz.size();
String plus = foundaz.get(0);
noduplicates.add(plus);
for(int i=1; i<n; i++)
{
if(!noduplicates.get(i-1).equalsIgnoreCase(foundaz.get(i)))
{
noduplicates.add(foundaz.get(i));
}
}
//System.out.print("Cuvantul/cuvintele \n"+i);
}
if(!foundaz.isEmpty())
{ System.out.print("Original text \n");
for(String s: foundaz)
{
System.out.println(s);
}
}
if(!noduplicates.isEmpty())
{ System.out.print("Remove duplicates\n");
for(String s: noduplicates)
{
System.out.println(s);
}
}
}
catch(Exception ex)
{
System.out.println(ex);
}
}
}
w celu usunięcia duplikaty z fraz. Kod działa tylko dla kolumny ciągów, a nie dla pełnych fraz.
Na przykład mój wkład powinien być:
bla bla myszy pies kota. Cat mice dog dog.
i myszy Blah pies kot wyjście
. Kot myszy psa.
pozdrawiam Kaska
Ale jak mogę skorzystać z wyrażenia regularnego w moim programie. Mam plik jako dane wejściowe i chciałbym wyświetlić jego zawartość bez nadmiarowości za pomocą System.out.print. Dziękuję :-) – SocketM
Dziękuję bardzo, ale co to 1 $ oznacza :-)? – SocketM
@SocketM: Jest to specjalna zmienna odnosząca się do zawartości pierwszej [grupy przechwytującej] (http://www.regular-expressions.info/brackets.html), w tym przypadku pierwsze słowo (które chcemy zachować) . –