Всем привет, как автоматическии считывать новое имя файла? ниже задача в которой нужно считать.
https://hyperskill.org/projects/39/stages/207/implement
еще ниже мое решение, что делаю не так?
проблема: появляется ошибка неверное имя файла, то есть оно меняется напрамер: "in.txt", "file.txt" и тд
https://ideone.com/c1VJQp
package readability;
import java.io.*;
import java.util.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String data = "";
try {
File myObj = new File("./input.txt");
Scanner myReader = new Scanner(myObj);
System.out.println("Java Main " + myObj.getName());
System.out.println("The text is :");
while (myReader.hasNextLine()) {
data = myReader.nextLine();
System.out.println(data);
}
myReader.close();
} catch (FileNotFoundException e) {
System.out.println("An error occurred.");
}
System.out.println();
int countWords = data.split(" ").length;
System.out.println("Words: " + countWords);
int countSc = data.split("[!?.:]+").length;
System.out.println("Sentences: " + countSc);
int countCh = data.replace(" ", "").length();
System.out.println("Characters: " + countCh);
double score = 4.71 * countCh/countWords + 0.5 * countWords/countSc - 21.43;
double d = (Double)Math.floor(score*100)/100.0;
System.out.println("The score is: " + d);
int ab = (int)Math.ceil(d);
String age = "";
switch (ab) {
case 1:
age = "5-6";
break;
case 2:
age = "6-7";
break;
case 3:
age = "7-9";
break;
case 4:
age = "9-10";
break;
case 5:
age = "10-11";
break;
case 6:
age = "11-12";
break;
case 7:
age = "12-13";
break;
case 8:
age = "13-14";
break;
case 9:
age = "14-15";
break;
case 10:
age = "15-16";
break;
case 11:
age = "16-17";
break;
case 12:
age = "17-18";
break;
case 13:
age = "18-24";
break;
case 14:
age = "24+";
default:
age = "no argument passed";
}
System.out.println("This text should be understood by " + age + " year olds.");
}
}