从Java中的行读取字符串-StringIndexOutOfBoundsException:字符串索引超出范围

杰米利

我想从文本文件中得到一个单词(“ |”和“:”之间的艺术家的名字),并在输出中得到我想要的东西,而且还有:

“线程“主”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-3 ...”

这是我的代码:

public class MyMainClass {
    public static void main(String args[]) throws IOException {
        try {
            Scanner console = new Scanner(System.in);
            System.out.print("Enter nr : ");
            String nr = console.nextLine();                
            File originalFile = new File("albums.txt");
            BufferedReader br;
            br = new BufferedReader(new FileReader(originalFile));
            String line;

            while ((line = br.readLine()) != null) {
                if (line.contains(nr)) {
                    String artysta = line.substring(line.indexOf("|") +1, line.indexOf(":"));
                    System.out.println("artysta: " + artysta);
                }  
            }
            br.close();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(MyMainClass.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(MyMainClass.class.getName()).log(Level.SEVERE, null, ex);
        }
    } 
}

我有正确的输出结果,以及(artysta)的名称也这样:

"Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -3 at java.lang.String.substring(String.java:1954) at MyMainClass.MyMainClass.main(MyMainClass.java:38) Java Result: 1"

这是我文件中字符串的示例。每个数字1 | 依此类推,开始新的一行。

1|Deerhunter:Microcastle||49,99|||95 
2|John Lennon:Imagine||59,99|||50 
3|The Cure:Faith||40,00|||80 

任何想法如何消除此错误?

战略

您无法确定+1在代码中使用时,该值是否在字符串长度范围内,因此您首先需要检查以下内容:

if ((line.indexOf("|") +1) < line.length() ){
.
.
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

StringIndexOutOfBoundsException字符串索引超出范围错误

来自分类Dev

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:java中的12

来自分类Dev

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:java中的12

来自分类Dev

线程“主”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-3

来自分类Dev

线程“主”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:4

来自分类Dev

线程“ main java.lang.StringIndexOutOfBoundsException中的异常:字符串索引超出范围

来自分类Dev

StringIndexOutOfBoundsException:读取文件时字符串索引超出范围:0

来自分类Dev

Java-java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:11

来自分类Dev

Hibernate SQL异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围

来自分类Dev

“异常:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围”

来自分类Dev

“ main” java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:17

来自分类Dev

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:4

来自分类Dev

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:(再次)

来自分类Dev

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-23 错误

来自分类Dev

字符串索引超出范围异常,字符串索引超出范围

来自分类Dev

字符串索引超出范围异常,字符串索引超出范围

来自分类Dev

Java中的字符串索引超出范围错误

来自分类Dev

线程“ AWT-EventQueue-0”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:8

来自分类Dev

curl错误:无法解析主机,java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1

来自分类Dev

重新平衡拓扑抛出java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1

来自分类Dev

我无法解决这个问题:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:54

来自分类Dev

Java字符串索引超出范围错误

来自分类Dev

字符串索引超出范围异常Java

来自分类Dev

Java-字符串索引超出范围错误

来自分类Dev

字符串格式中的元组索引超出范围

来自分类Dev

字符串索引超出范围-索引错误

来自分类Dev

索引错误:字符串索引超出范围

来自分类Dev

Python:Palidrome(字符串索引超出范围)

来自分类Dev

字符串索引超出范围并全部替换

Related 相关文章

  1. 1

    StringIndexOutOfBoundsException字符串索引超出范围错误

  2. 2

    java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:java中的12

  3. 3

    java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:java中的12

  4. 4

    线程“主”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-3

  5. 5

    线程“主”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:4

  6. 6

    线程“ main java.lang.StringIndexOutOfBoundsException中的异常:字符串索引超出范围

  7. 7

    StringIndexOutOfBoundsException:读取文件时字符串索引超出范围:0

  8. 8

    Java-java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:11

  9. 9

    Hibernate SQL异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围

  10. 10

    “异常:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围”

  11. 11

    “ main” java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:17

  12. 12

    java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:4

  13. 13

    java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:(再次)

  14. 14

    java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-23 错误

  15. 15

    字符串索引超出范围异常,字符串索引超出范围

  16. 16

    字符串索引超出范围异常,字符串索引超出范围

  17. 17

    Java中的字符串索引超出范围错误

  18. 18

    线程“ AWT-EventQueue-0”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:8

  19. 19

    curl错误:无法解析主机,java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1

  20. 20

    重新平衡拓扑抛出java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1

  21. 21

    我无法解决这个问题:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:54

  22. 22

    Java字符串索引超出范围错误

  23. 23

    字符串索引超出范围异常Java

  24. 24

    Java-字符串索引超出范围错误

  25. 25

    字符串格式中的元组索引超出范围

  26. 26

    字符串索引超出范围-索引错误

  27. 27

    索引错误:字符串索引超出范围

  28. 28

    Python:Palidrome(字符串索引超出范围)

  29. 29

    字符串索引超出范围并全部替换

热门标签

归档