всем хай, есть код который хранится в текстовом файле, и там есть блоки If , While , циклы for или же просто идентичные целые строки,которые были скопированы и вставлены чтоб не писать одно и тоже несколько раз, вот надо их найти и удалить оставив лишь один экземпляр. (на счет того что код не будет работать после удаление чего-либо не стоит задумываться, моя задача только удалить)
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.LinkedHashSet;
class C {
public static void main(String [] args) throws FileNotFoundException {
String [] rows = new Scanner(new File("file.txt")).useDelimiter("\\Z").next().split("\n");
for ( String s : rows ){
System.out.println(s);
}
int i;
LinkedHashSet<String> text = new LinkedHashSet<>();
for(i=0; i<rows.length; i++){
text.add(rows[i].replaceAll("\\s", ""));
}
System.out.println("-----------------------------------------------------------------");
String[] stringArr = new String[text.size()];
text.toArray(stringArr);
int j=0;
for (String a : stringArr){
j=j+1;
System.out.println(a);
}
System.out.println("Новый размер = " + j);
}
}
вот что я понаписал,я читаю из файла по строкам, затем записываю эти строки в Set с удалением всех пробелов, но тут возникают проблемы 1)удаляются закрывающие фигурные скобки 2) надо снова расставить эти удаленные пробелы.
содержимое file.txt:
import java.util.LinkedHashSet;
public class A{
public static void main(String[] args) {
String b = " ";
String s[] = b.split(" ") ;
LinkedHashSet<String> words = new LinkedHashSet<>();
int i;
while(0){
System.out.println("Размер = " + words.size());
System.out.println(words.toString());
i++;
}
for(i=0; i<s.length; i++){
words.add(s[i]);
}
for(i=0; i<s.length; i++){
words.add(s[i]);
}
System.out.println("Размер = " + words.size());
System.out.println(words.toString());
System.out.println("-----------------------------------------------------------------");
String[] stringArr = new String[words.size()];
words.toArray(stringArr);
for (String a : stringArr)
System.out.print(a+" ");
while(0){
System.out.println("Размер = " + words.size());
System.out.println(words.toString());
i++;
}
}
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники