Назад | Начало урока | Вперед
Содержание

Глава 7 (продолжение 2)

Задача 7.3 "Преобразование имен "

При создании файла с именами людей использовались исключительно прописные буквы. Необходимо представить имена в обычной форме: первая буква - прописная, остальные - строчные. Следует учитывать инициалы, а так же то, что префиксы и фамилии, такие как Du или Von, начинаются с прописной буквы. Например:

M.A.STORE M.A.Store
J.FOX-ROBINSON J.Fox-Robinson
P DU PLESSIS P Du Plessis

Решение

Файл должен быть текстовым и состоять из имен людей написанных только прописными буквами. Например:

M.A.STORE
J.FOX-ROBINSON
P DU PLESSIS

Наша задача преобразить записи в следующий вид:

M.A.Store
J.Fox-Robinson
P Du Plessis

Будем считывать из файла построчно, затем преобразовывать. Будем анализировать каждый символ. Если это не первый символ слова, или он не равен разделителю (точка, тире), или не первый символ после разделителя, то переведем этот символ в нижний регистр.

Код программы:


import java.io.*;
import javagently.*;

class ReadFile01 {

ReadFile01() throws IOException {

Stream fin = new Stream(System.in);
Stream fout= new Stream ("data.out",Stream.WRITE); try {

fin = Filer.open("data.txt");
}
catch (FileNotFoundException e) {
System.out.println("Five tries up");

System.out.println("Connecting to keyboard by default");
}
int n = 0;

// try read file try {

for(;;){
String s = fin.readLine();
String s2 = s.trim(); //sourse string
String s3 = new String(s2);
String temp = s3.toLowerCase();

char study [] = s2.toCharArray();
for(int i=1;i < s2.length();i++){

if(isBigAlfabet(study[i])){
if(isDelim(study[i-1])){
continue;
}
else{
study[i] = temp.charAt(i);
}
}//
}//for

String temp2 = new String(study);
fout.println(temp2);

}
}
catch (EOFException e) {
System.out.println(" All data is reading ");
}


fin.close();
fout.close();

}//end constructor

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

new ReadFile01();
}

boolean isDelim(char c){

if(" .-".indexOf(c) != -1) return true;
return false;
}

boolean isBigAlfabet(char c){

if("ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(c) != -1) return true;
return false;
}

}


Результат :

M.A.Store
J.Fox-Robinson
P Du Plessis
Paul Mac Cartny
John Lennon
Gorge Harisson
Ringo Starkey
Simon Bolivar
Hose Eduardu Dush Santush


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz