Hello/24/world 87

Запустим программу и на выводе получим:

Hello
24
world 87

Воспользуемся методом findInLine() для того чтобы найти все слова. Воспользуемся регулярным выражением:

Pattern patt = Pattern.compile("[a-z A-Z]+");

изменим код следующим образом:

while (scan.hasNext()) {
System.out.println(scan.findInLine(patt));
scan.next();
}

На выводе получим:

Hello
world

Если добавить перед циклом:

scan.skip("Hello");

То на выходе будет только:

World

 
 

Задача 7.5. Напишите программу, заменяющую в текстовом файле все вхождения строки на новую строку. Имя файла и строки передаются из командной строки. Аргументы следующие:

SourceFile TargetFile oldString NewString.

Например, при вводе

FormatString.java t.txt StringBuilder StringBuffer

следует заменить все вхождения StringBuilder на StringBuffer в файле FormatString.java и сохранить новый файл t.txt.

Объяснение: первоначально программа проверяет количество аргументов, переданных в главный метод из командной строки. Если аргументы не переданы программа завершает свою работу и выдает соответствующее сообщение. Далее проводятся проверки, существуют ли исходный и целевой файлы.

Создается Scanner для исходного файла, и PrintWriter для записи в целевой файл. В цикле while считывается строка из исходного файла и заменяется на новую, далее новая строка записывается в целевой файл. Чтобы гарантировать, что данные будут сохранены в файле должным образом, в конце программы с помощью метода close() закрываем входной и выходной потоки.

В нормальной ситуации, программа завершается после копирования файла. Аварийно программа может завершиться в случае, если не были введены аргументы командной строки, если исходный файл не существует или если целевой файл уже существует.

import java.io.*;

import java.util.*;

public class ReplaceText {

public static void main(String[] args) throws Exception {

if (args.length!= 4) {

System.out.println("Enter the command-line arguments");

System.exit(1);

}

//Проверяем существует ли исходный файл

File sourceFile = new File(args[0]);

if(!sourceFile.exists()){

System.out.println("Source file " + args[0]

+ " does not exist");

System.exit(2);

}

//Проверяем существует ли целевой файл

File targetFile = new File(args[1]);

if(targetFile.exists()){

System.out.println("Target file " + args[1]

+ " already exists");

System.exit(3);

}

//Создаем сканер для ввода и PrintWriter для вывода

Scanner input = new Scanner(sourceFile);

PrintWriter output = new PrintWriter(targetFile);

while(input.hasNext()){

String s1 = input.nextLine();

String s2 = s1.replaceAll(args[2], args[3]);

output.println(s2);

}

input.close();

output.close();

}


}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: