gpt4 book ai didi

Java 错误 : illegal character: '\u2013'

转载 作者:行者123 更新时间:2023-12-03 21:51:39 28 4
gpt4 key购买 nike

我正在创建一个概率结果模拟器程序。该程序读取某个 .csv 文件并预测每场比赛的结果。我遇到了 6 个相同的错误:错误:非法字符:'\u2013'

这是我的代码:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.stage.FileChooser;
import javafx.geometry.*;
import java.util.*;
import java.io.*;

public class POS extends Application
{
private Button runBtn = new Button("Run");
@Override
public void start(Stage stage)
{
GridPane pane = new GridPane();

VBox vBox = new VBox(20);
vBox.setPadding(new Insets(15));
Button selectBtn = new Button("Select File");
selectBtn.setStyle("-fx-font: 22 arial; -fx-base: #b6e7c9;");
vBox.getChildren().add(selectBtn);

selectBtn.setOnAction(e->
{
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Resource File");
FileChooser.ExtensionFilter extFilter =
new FileChooser.ExtensionFilter("TEXT files (*.csv)", "*.CSV", ".xlsv", ".XLSV");
fileChooser.getExtensionFilters().add(extFilter);
File file = fileChooser.showOpenDialog(stage);

run(file);


});

RadioButton weekBtn = new RadioButton("Current Week");
RadioButton seasonBtn = new RadioButton("Entire Season");

runBtn.setStyle("-fx-font: 22 arial; -fx-base: #b6e7c9;");



seasonBtn.setDisable(true);
vBox.getChildren().add(weekBtn);
vBox.getChildren().add(seasonBtn);
vBox.getChildren().add(runBtn);

pane.add(vBox, 0, 0);
Scene scene = new Scene(pane, 500, 200);
stage.setScene(scene);
stage.setTitle("POS");
stage.show();
}
public void run(File file)
{
runBtn.setOnAction(e->
{
try
{
Scanner input = new Scanner(file);
input.nextLine();
sortFile(file, input);

input.close();
}

catch (InputMismatchException ex)
{
System.out.println("Error you seem to have typed the wrong type of file");
}
catch(IOException ex)
{
System.out.println("Error, file could not be found");
}


});
}
public ArrayList<String> sortFile(File file, Scanner input)
{
String strList = Arrays.toString(input.nextLine().split("\t"));
String[] arrList = strList.split(",");
int homeRank = Integer.parseInt(arrList[1]);
System.out.println(homeRank);
int roadRank = Integer.parseInt(arrList[6]);
Random r = new Random();
int lowestTeamRank = Math.abs(homeRank - roadRank);

if (homeRank < roadRank)
{
double numForHomeTeam = r.nextInt(lowestTeamRank) - r.nextInt(2) + (getLastGameOutcome(arrList[4])* r.nextInt(3)) – getWinPct(arrList[2], arrList[3]);

double numForRoadTeam = r.nextInt(roadRank) + r.nextInt(2) + getLastGameOutcome(arrList[9])* r.nextInt(3) – getWinPct(arrList[7], arrList[8]);
}

else if (homeRank > roadRank)
{
double numForHomeTeam = r.nextInt(homeRank) - r.nextInt(2) + getLastGameOutcome(arrList[4])* r.nextInt(3) – getWinPct(arrList[2], arrList[3]);

double numForRoadTeam = r.nextInt(lowestTeamRank) - r.nextInt(2) + getLastGameOutcome(arrList[9])* r.nextInt(3) – getWinPct(arrList[7], arrList[8]);
}

else
{
double numForHomeTeam = r.nextInt(homeRank) - r.nextInt(2) + getLastGameOutcome(arrList[4])* r.nextInt(3) – getWinPct(arrList[2], arrList[3]);

double numForRoadTeam = r.nextInt(lowestTeamRank) - r.nextInt(2) + getLastGameOutcome(arrList[9])* r.nextInt(3) – getWinPct(arrList[7], arrList[8]);

}
return null;
}

public int getLastGameOutcome(String lastGame)
{
if (lastGame.charAt(0) == 'W')
{
return (int)(Math.random() * 3);
}

else
{
return (int)(Math.random() * -3);
}
}

public double getWinPct(String wins, String losses)
{
double wins = Double.parseDouble(wins);
double losses = Double.parseDouble(losses);
return wins / (wins + losses);
}

}

错误发生在 sortFile 方法中,其中 if/else if/else 语句是(numForHomeTeam 和 numForRoadTeam 的公式)。错误出现在每个公式的末尾,其中从其他所有内容中减去 getWinPct()。是什么导致了这个错误,我该如何解决?

最佳答案

字符 \u2013 是一个破折号,而不是常规的破折号 (ascii 45)。读入文件时,您可能需要过滤非标准字符。在阅读 .doc 或其他类型的文件时,我不得不过滤掉一些不规则字符

关于Java 错误 : illegal character: '\u2013' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34115426/

28 4 0