import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundE
ID: 3642107 • Letter: I
Question
import java.io.BufferedReader;import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
public class StringUtil {
public static String convertToPigLatin(String english) {
String englishWord, pigLatin = null;
englishWord = english;
if (englishWord.charAt(0) == 'a' || englishWord.charAt(0) == 'e'
|| englishWord.charAt(0) == 'i' || englishWord.charAt(0) == 'o'
|| englishWord.charAt(0) == 'u') {
pigLatin = englishWord + "way";
} else {
char firstChar = englishWord.charAt(0);
pigLatin = englishWord
+ firstChar + "ay";
}
return pigLatin;
}
public static void main(String s[]) {
List<String> strList = new ArrayList<String>();
List<String> resList = new ArrayList<String>();
try {
FileReader fileReader = new FileReader("pigLatinIn.txt");
BufferedReader bufRead = new BufferedReader(fileReader);
String thisLine = null;
while ((thisLine = bufRead.readLine()) != null) {
StringTokenizer st = new StringTokenizer(thisLine);
while (st.hasMoreTokens()) {
strList.add(st.nextToken());
}
}
Iterator<String> iter = strList.iterator();
while (iter.hasNext()) {
String str = iter.next();
String res = convertToPigLatin(str);
resList.add(res);
}
FileWriter fileWriter = new FileWriter("pigLatinOut.txt");
for (int i = 0; i < resList.size(); i++) {
fileWriter.write(resList.get(i));
fileWriter.write(' ');
}
fileWriter.flush();
fileWriter.close();
bufRead.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Edit this program so that the output txt file is in the format of
English word Pig Latin Word
------------ --------------
cabin abin-cay
apple apple-way
Explanation / Answer
This does print the way you need it to print. If you are on Windows then you are not seeing the proper line breaks because NotePad is useless. Open the file with WordPad instead.
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
public class StringUtil {
public static String convertToPigLatin(String english) {
String englishWord, pigLatin = null;
englishWord = english;
if (englishWord.charAt(0) == 'a' || englishWord.charAt(0) == 'e'
|| englishWord.charAt(0) == 'i' || englishWord.charAt(0) == 'o'
|| englishWord.charAt(0) == 'u') {
pigLatin = englishWord + "way";
}
else {
char firstChar = englishWord.charAt(0);
pigLatin = englishWord.substring(1)
+ firstChar + "ay";
}
return pigLatin;
}
public static void main(String s[]) {
List<String> strList = new ArrayList<String>();
List<String> resList = new ArrayList<String>();
try {
FileReader fileReader = new FileReader("pigLatinIn.txt");
BufferedReader bufRead = new BufferedReader(fileReader);
String thisLine = null;
while ((thisLine = bufRead.readLine()) != null) {
StringTokenizer st = new StringTokenizer(thisLine);
while (st.hasMoreTokens()) {
strList.add(st.nextToken());
}
}
Iterator<String> iter = strList.iterator();
while (iter.hasNext()) {
String str = iter.next();
String res = convertToPigLatin(str);
resList.add(res);
}
FileWriter fileWriter = new FileWriter("pigLatinOut.txt");
fileWriter.write("English word Pig Latin Word");
fileWriter.write(" ");
fileWriter.write("------------ --------------");
fileWriter.write(' ');
for (int i = 0; i < resList.size(); i++) {
fileWriter.write(strList.get(i) + " ");
fileWriter.write(resList.get(i));
fileWriter.write(' ');
}
fileWriter.flush();
fileWriter.close();
bufRead.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.