有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将API中的字符串从括号开始拆分为两部分

我有一个方法,可以检查API生成的引用是否在130个字符以内,然后将其分为两部分,前面部分是引用,第二部分是作者

API引用的html输出是:(例如)“语言中的善意创造信心(老子)”

我想在两个单独的文本视图中显示它们,并删除括号。 文本视图1-报价 Textview 2-作者(已删除括号)

不幸的是,该应用程序崩溃,有时会显示IndexOutOfBoundsException,还有其他方法可以做到这一点吗

提前谢谢你

private void check(String quote){

        //check length
        int length = quote.length();

        if (length <= 130) {

            //split to quote and author strings
            String[] parts = quote.split(Pattern.quote("(")); // Split on ( into 2 parts, quote and author
            String part1 = parts[0]; //quote
            String part2 = parts[1]; //author with )

            String removedSymbolsPart2 = part2.replaceAll("\\)", ""); //remove ) symbol

            String finalQuote = Html.fromHtml(part1).toString();
            String finalAuthor = Html.fromHtml(removedSymbolsPart2).toString();

            quoteTextViewMain.setText(finalQuote);
            authorTextViewMain.setText(finalAuthor);

        } else {
            //get another quote
            getQuote();
        }
    }

索引越界错误:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.amethyst.secretgarden, PID: 21802
    java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
        at com.amethyst.secretgarden.MainActivity.check(MainActivity.java:83)
        at com.amethyst.secretgarden.MainActivity.access$000(MainActivity.java:24)
        at com.amethyst.secretgarden.MainActivity$4.success(MainActivity.java:106)
        at com.amethyst.secretgarden.MainActivity$4.success(MainActivity.java:103)
        at com.github.kittinunf.fuel.core.DeserializableKt$response$7.invoke(Deserializable.kt:150)
        at com.github.kittinunf.fuel.core.DeserializableKt$response$7.invoke(Unknown Source:4)
        at com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke(Deserializable.kt:192)
        at com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke(Unknown Source:0)
        at com.github.kittinunf.fuel.core.RequestExecutionOptionsKt$sam$java_lang_Runnable$0.run(Unknown Source:2)
        at 安卓.os.Handler.handleCallback(Handler.java:873)
        at 安卓.os.Handler.dispatchMessage(Handler.java:99)
        at 安卓.os.Looper.loop(Looper.java:226)
        at 安卓.app.ActivityThread.main(ActivityThread.java:7231)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.安卓.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:500)
        at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:913)
I/Process: Sending signal. PID: 21802 SIG: 9


共 (0) 个答案