Program: odczytujący dane (frazy) z pliku „input.txt” a następnie dokonujący na nich poszczególnych przekształceń po czym zapisuje do odpowiednich plików.
Do plików na przykład:
- „hasla_a.txt” – odwrócone,
- „słowa_a.txt” – wybierający najkrótszą jak i najdłuższą frazę,
- „hasla_b.txt” – lustrzane odbicia.
Wykorzystane dane wejściowe:
22
32
12
23
56
sadsad
dsa
fdsa
fdsa
g
dsag
sfdh
sah
fdsfd
j
Dane wyjściowe (słowa_a.txt):
sadsad 6
g 1
Dane wyjściowe (hasla_b.txt):
22
2332
2112
3223
6556
dasdassadsad
asddsa
asdffdsa
asdffdsa
g
gasddsag
hdfssfdh
hassah
dfsdffdsfd
j
Dane wyjściowe (hasla_a.txt):
22
23
21
32
65
dasdas
asd
asdf
asdf
g
gasd
hdfs
has
dfsdf
j
Kompilator: Eclipse
Kod programu:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class glowna {
//Program wykonujący operacje na słowach.
public static void main(String[] args) throws IOException {
FileReader odczyt=new FileReader("slowa.txt");
BufferedReader bufor=new BufferedReader(odczyt);
FileWriter zapis=new FileWriter("hasla_a.txt"); //Odwrócone
BufferedWriter buforWy=new BufferedWriter(zapis);
FileWriter zapis2=new FileWriter("slowa_a.txt"); //Najkrótsze i najdłuższe
BufferedWriter buforWy2=new BufferedWriter(zapis2);
FileWriter zapis3=new FileWriter("hasla_b.txt"); //Lustrzane odbicie
BufferedWriter buforWy3=new BufferedWriter(zapis3);
String linia;
int suma=0,sumamin=29;
int ilosc=0;
String linka = null,linkamin = null;
while((linia=bufor.readLine())!=null)
{
String reverse = new StringBuffer(linia).reverse().toString();
buforWy.write(reverse);
buforWy.newLine();
int ile=linia.length();
if(suma<ile)
{
suma=ile;
linka=linia;
}
if(sumamin>ile)
{
sumamin=ile;
linkamin=linia;
}
boolean y=false;
for(int i=0,j=linia.length()-1;i<linia.length();i++,j--)
{
if(linia.charAt(i)!=linia.charAt(j))
{
y=false;
break;
}
else {
y=true;
ilosc++;
}
}
if(y==true)
{
buforWy3.write(linia);
buforWy3.newLine();
}
else if(ilosc!=0)
{
buforWy3.write("!!");
}
else
{
buforWy3.write(reverse+linia);
buforWy3.newLine();
}
ilosc=0;
}
buforWy2.write(linka+" "+suma);
buforWy2.newLine();
buforWy2.write(linkamin+" "+sumamin);
buforWy.close();
buforWy2.close();
buforWy3.close();
bufor.close();
}
}