0
我需要使用列表從文本文件打印出每個字母。我不確定它現在在哪裏搞亂了。通過列表一次打印出一個字符
這是我到目前爲止的代碼。它目前只打印出文件的第一個字母。例如,如果第一個字符是「H」,它只會打印出「H」,而不會繼續執行文件的其餘部分。我測試了多個文件,以確保它不僅僅是我正在使用的文件。它採用標準.txt文件中的短語。
任何幫助將不勝感激!
package parsephrase;
/**
*
* @author Matt
*/
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Scanner;
public class ParsePhrase {
private final Path filePath;
private ArrayList<String> inputList = new ArrayList<String>();
private ArrayList<Character>outputList = new ArrayList<Character>();
public ParsePhrase(String inputFile) {
filePath = Paths.get(inputFile);
}
public void readLines() {
try (Scanner input = new Scanner(filePath)) {
while (input.hasNextLine()) {
logInputLine(input.nextLine());
}
input.close();
}
catch (IOException e) {
System.out.println("Unable to access file.");
}
}
public void logInputLine(String lineIn) {
Scanner input = new Scanner(lineIn);
inputList.add(input.nextLine());
input.close();
}
public void displayOutput() {
for (int inputListIndex = 0; inputListIndex < inputList.size(); inputListIndex++) {
String inputString = inputList.get(inputListIndex);
for (int inputStringIndex = 0; inputStringIndex < inputString.length(); inputStringIndex++) {
if (outputList.isEmpty()) {
outputList.add(inputString.charAt(inputStringIndex));
continue;
}
for (int outputListIndex = 0; outputListIndex < outputList.size(); outputListIndex++) {
if (Character.isLetter(inputString.charAt(inputStringIndex))) {
if (inputString.charAt(inputStringIndex) <= outputList.get(outputListIndex));
displayCharArray(outputList);
break;
}
else if (inputString.charAt(inputStringIndex) > outputList.get(outputListIndex)) {
if (outputListIndex == outputList.size() - 1) {
outputList.add(inputString.charAt(inputStringIndex));
displayCharArray(outputList);
break;
} else {
continue;
}
}
}
}
}
}
public void displayCharArray(ArrayList<Character> listIn) {
for (Character c : listIn) {
System.out.println(c);
}
System.out.println();
}
public static void main(String[] args)throws IOException {
ParsePhrase parser = new ParsePhrase("C:\\devel\\cis210\\Week 3\\Test.txt");
parser.readLines();
parser.displayOutput();
}
}
歡迎堆棧溢出!你已經在你的問題中發佈了很多代碼,這使得我們(以及未來的讀者)不清楚問題出在哪裏。請將您的問題代碼減少到10行或更少。請參閱:[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)和[如何調試小程序](https://ericlippert.com/2014/03/05 /如何調試的小程序/)。 –
[什麼是調試器,它如何幫助我診斷問題?](https://stackoverflow.com/q/25385173/5221149) – Andreas