首页 > 解决方案 > Java 和 StringIndexOutOfBoundsException 的问题

问题描述

我正在尝试做一项学校作业,但我有点卡在我的代码上,当我运行代码时,我得到了这个:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 25
    at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3756)
    at java.base/java.lang.String.substring(String.java:1902)
    at Demo4/d4.StringBuilder.poistaEkaSana(StringBuilder.java:32)
    at Demo4/d4.StringBuilder.main(StringBuilder.java:18)

目标是使用 StringBuilder 删除名字 firstname 并在空格后打印字符。任何帮助表示赞赏。

import fi.jyu.mit.ohj2.*;

public class StringBuilder {

    public static void main(String[] args) {
        String nimi = Syotto.kysy("Give Lastname Firstname");
        StringBuilder sb = new StringBuilder();
        removeFirstWord(sb);

        System.out.println("Your last name is " + sb);
        String lastname = giveFirstWord(name);
        System.out.println("Your last name is " + lastname);
    }


    public static String removeFirstWord(StringBuilder sb) {
        String bs = sb.toString();
        int remove= bs.indexOf(" ");
        String second= bs.substring(0, remove);
        return second;

    }

    public static String giveFirstWord(String fname) {
        int s1= fname.indexOf(' ');
        String d2= fname.substring(s1, 14);
        return d2;
    }
}

标签: javastring

解决方案


您的班级名称与java.lang.StringBuilder.

重命名您的班级名称(或使用 FQCN),并且

    String nimi = Syotto.kysy("Give Lastname Firstname");
    java.lang.StringBuilder sb = new java.lang.StringBuilder(nimi); // add argument

推荐阅读