您好我正在尝试创建一个程序,该程序允许用户在运行时选择他们是否希望我在单独的文件中使用纯文本控制台或Web浏览器上的html。目前似乎唯一出现的错误是捕获应该是最终的,但如果我将其更改为最终它永远不会关闭我的编剧。谢谢你的帮助。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.lang.reflect.Array;
import java.util.Scanner;
public class HTML {
public static void main(String[] args) throws FileNotFoundException {
int scorehome = 0;
int scoreaway = 0;
int invalid = 0;
int goals = 0;
int valid = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("Do you want to generate plain (T)ext or (H)TML");
String input = scanner.nextLine();
boolean generateHTML = false;
if ( input.equalsIgnoreCase("H") ) {
generateHTML = true;
}
String line; // stores the each line of text read from the file
PrintWriter online = new PrintWriter(new FileWriter("C:/temp/htmloutput.html"));
while ( scanner.hasNext() ) {
line = scanner.nextLine(); // read the next line of text from the file
//split the line
String [] elements = line.split(":");
//System.out.println("Element " + (i+1) + " was : " + elements[i]);
if (elements.length == 4) {
String home = elements[0].trim();
String away = elements[1].trim();
String homescore = elements[2].trim();
String awayscore = elements[3].trim();
boolean homescoreVal = false;
boolean awayscoreVal = false;
boolean homenameVal = false;
boolean awaynameVal = false;
try { // "try" is a special statement which allows us to deal with "exceptions"
scorehome = Integer.parseInt(homescore); // attempt to convert the String into an Integer type value
homescoreVal = true;
} catch (NumberFormatException e) {
homescoreVal = false;
}
try {
scoreaway = Integer.parseInt(awayscore); // attempt to convert the String into an Integer type value
awayscoreVal = true;
} catch (NumberFormatException e) {
homescoreVal = false;
}
if (home.length() <= 1) {
homenameVal = false;
} else {
homenameVal = true;
}
if (away.length() <= 1) {
awaynameVal = false;
} else {
awaynameVal = true;
}
if (homescoreVal == true && awayscoreVal == true
&& homenameVal == true && awaynameVal == true){
System.out.println(home + " [" + scorehome + "] | "
+ away + " [" + scoreaway + "]\r");
goals = (scorehome + scoreaway) + goals;
valid = 1 + valid;
} else {
invalid = 1 +invalid;
}
}
else {
invalid = 1 + invalid;
}
}
System.out.println("\rValid match was " + valid);
System.out.println("Total goals scored was " + goals);
System.out.println("Invalid match count was " + invalid + ".");
System.out.println("\nEOF"); // Output and End Of File message.
if (generateHTML == true) {
online.println("\rValid match was " + valid);
online.println("Total goals scored was " + goals);
online.println("Invalid match count was " + invalid + ".");
}
String locationOfFile = "C:\temp\\htmloutput.html";
try {
Runtime.getRuntime().exec("cmd.exe /C start " + locationOfFile);
} catch {
System.err.println("Error: unable to open " + locationOfFile);
}
}
}
错误消息:线程“main”中的异常java.lang.Error:未解决的编译问题: 语法错误,插入“Finally”以完成TryStatement
at HTML.main(HTML.java:117)
答案 0 :(得分:0)
就我已经阅读过您的代码而言,您的代码逻辑没有意义,并且没有您正在寻找的关注
你应该坐下来将问题分解成碎片
将这段代码作为蓝图
System.out.println("Either enter t for plain text\n or h for HTML");
Scanner input = new Scanner(System.in);
String answer = input.nextLine();
if(answer.equalsIgnoreCase("H")){
System.out.println("wowwwwww you chose HTML");
}
else if( answer.equalsIgnoreCase("T")){
System.out.println("wowwwwww you chose plain text");
}
}
之后你需要看看在每种情况下你想做什么,一般来说你可以按照下面的说法进行操作
1. you gonnna read your file that you have how? using Scanner
2. when you have your data inside a array or whatever data structure
3. you gonna do your manipulation
4.the last job is to write back to wherever you wanna
您应该了解有关try catch块的一些要点
例如:
try{
System.out.print(7/0);
}catch(Exception e){
System.out.println(e);
}finally{
System.out.println("no matter what I gonna be executed");
}
在你的尝试块中,你试图潜入一个七乘七的数字,这会抛出异常