В настоящее время я пытаюсь написать программу, которая проходит через текстовый файл, чтобы найти первое слово длиной более 9 символов.Как найти первую строку в текстовом файле с определенной длиной?
Я думал, что сначала мне нужно получить полное слово, поэтому для этого я должен использовать цикл for для итерации по каждому элементу в файле, добавляя его как переменную currentWord.
Во-вторых, получив это слово/String, я бы сделал второй шаг - чтобы сравнить его длину с целью («THRESHOLD») длиной 9. Если бы это было больше, то я нашел первый слово длины, большее или равное 10, и вернет это в предложение. В противном случае цикл продолжил бы итерацию?
Вот то, что я до сих пор:
// Write a program that finds the first word in Alice In Wonderland
// that is longer than a given number of characters.
import java.util.Scanner;
import java.io.FileReader;
import java.io.FileNotFoundException;
public class LearningLoops {
public static void main(String[] args) throws java.io.FileNotFoundException
{
Scanner in = new Scanner(new FileReader("aliceInWonderland.txt"));
String longWord = "";
boolean found = false;
final int THRESHOLD = 9;
int i;
String currentWord;
for (i = 0; in.charAt(i) != " "; i++) {
currentWord = currentWord + i;
i++;
}
while (in != null) {
if (currentWord.length() > THRESHOLD) {
longWord = currentWord;
}
System.out.println("The first long word is: " + longWord);
}
}
}
Является ли это правильный подход? Я застрял и поэтому буду благодарен за любую помощь.
in.charAt (я) = "" неправильно .. – TheLostMind
тестирование ли вы свой подход? Если нет, почему бы и нет? Действительно, работает ли это? В противном случае, какую ошибку он дает, или дать пример ввода вместе с ожидаемым и фактическим выходом, и предпочтительно отлаживать код, чтобы найти или, по крайней мере, сузить проблему. – Dukeling
Правильный подход должен включать передачу имени файла, который вы будете читать программе, в качестве аргумента командной строки. – unigeek