gpt4 book ai didi

java - 线程中的异常 "main"java.lang.StringIndexOutOfBoundsException : String index out of range: -1 at java. lang.String.substring(String.java:1960)

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

我有 Racer 类(class):

public class Racer {

private String name;
private String team;
private String result;


public Racer(String name, String team) {
this.name = name;
this.team = team;
}

@Override
public String toString() {
return "Racer{" +
"name='" + name + '\'' +
", team='" + team + '\'' +
", result='" + result + '\'' +
'}';
}}

然后,我尝试在另一个类中创建此类的赛车手:

public class RacerList {
public void createListOfRacers() {
Racer Kevin = createRacer("KMH_Kevin Magnussen_HAAS FERRARI");
}

这些方法可以帮助创建赛车手:

 private Racer createRacer(String line) {
return new Racer(extractNameOfTheRacer(line), extractTeamOfTheRacer(line));
}

private String extractNameOfTheRacer(String line) {
return line.substring(line.indexOf('_' + 1), line.lastIndexOf('_'));
}

private String extractTeamOfTheRacer(String line) {
return line.substring(line.lastIndexOf('_' + 1));
}

}

我在这里收到指示的错误:

return line.substring(line.indexOf('_' + 1), line.lastIndexOf('_'));

在方法“extractNameOfRacer”中。

最佳答案

您正在获取字符串的 '_'+1 索引,该索引的计算结果为 96 作为 int,它大于您的实际字符串长度。更改此行

line.substring(line.indexOf('_' + 1), line.lastIndexOf('_'));

line.substring(line.indexOf('_') +1, line.lastIndexOf('_'));

获取第一个下划线和最后一个下划线之间的字符串

关于java - 线程中的异常 "main"java.lang.StringIndexOutOfBoundsException : String index out of range: -1 at java. lang.String.substring(String.java:1960),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59297898/

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