gpt4 book ai didi

java - 如何读取空字符串来创建输出

转载 作者:行者123 更新时间:2023-12-02 09:21:42 26 4
gpt4 key购买 nike

我有需要读取输入的文件。其中一根线上没有添加名字。在这种情况下,我想打印出没有找到匹配项。我遇到的问题是我不知道如何确保程序实际上将该部分读取为空字符串。现在发生的情况是,控制台上的行将保留为空。

日期输入如下所示:

5=20=22=10=2=0=0=1=0=1;Vincent Appel,Johannes Mondriaan

2=30=15=8=4=3=2=0=0=0;

类(class)管理{

public static final int TOTAL_NUMBER_OF_SIMULARITY_SCORES = 10;
public static final String ZERO_MATCHES = "_";
public static final String LESS_THAN_TWENTY_MATCHES= "-";
public static final String TWENTY_OR_MORE_MATCHES = "^";


PrintStream out;

Administration() {
out = new PrintStream(System.out);

}


void printSimilarityScores (Scanner similarityScoresScanner, String similarityScoresInput) {
similarityScoresScanner.useDelimiter("=|;");
int length = similarityScoresInput.length();

for (int i = 0; i < TOTAL_NUMBER_OF_SIMULARITY_SCORES; i++) {
int grade = similarityScoresScanner.nextInt();

if (grade == 0) {
out.printf(ZERO_MATCHES);
} else if (grade < 20) {
out.printf(LESS_THAN_TWENTY_MATCHES);
} else {
out.printf(TWENTY_OR_MORE_MATCHES);
}

}

System.out.print("\n");
similarityScoresScanner.useDelimiter(";|,");

while(similarityScoresScanner.hasNext()) {
String name = similarityScoresScanner.next();

if (length < 22) {
out.printf("No matches found\n");
} else {
System.out.print("\n" + name);
}

}

}




void start() {

Scanner fileScanner = UIAuxiliaryMethods.askUserForInput().getScanner();

while (fileScanner.hasNext()) {

String finalGradeInput = fileScanner.nextLine();
String similarityScoresInput = fileScanner.nextLine();

Scanner finalGradeInputScanner = new Scanner(finalGradeInput);
Scanner similarityScoresScanner = new Scanner(similarityScoresInput);

printFinalGrade(finalGradeInputScanner);
printSimilarityScores(similarityScoresScanner, similarityScoresInput);

}
}

public static void main(String[] argv) {

new Administration().start();

}

}

最佳答案

更简单的解决方案是逐行读取文件并像这样处理它们:

  • 用分隔符分割
  • 检查是否有超过 1 个元素,
  • 如果是正面,请打印出来
Scanner similarityScoresScanner = new Scanner(myFile);
while (similarityScoresScanner.hasNextLine()) {
String[] content = similarityScoresScanner.nextLine().split("[;,]");
if (content.length == 1) {
System.out.println("No matches found");
} else {
for (int i = 1; i < content.length; i++) {
System.out.println(content[i]);
}
}
}

关于java - 如何读取空字符串来创建输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58656295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com