亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了如何修復(fù)數(shù)組越界異常?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我嘗試從字符串?dāng)?shù)組中提取系數(shù)和指數(shù)。例如:”x^2+2x+1″或”x^5″或”x^2-x+1″。我在這個多項式構(gòu)造函數(shù)中編寫的代碼適用于大多數(shù)情況,但是當(dāng)字符串的長度為1時,我會得到一個超出界限的索引錯誤:”EXCEPTION in ThREAD”main”java.lang.ArrayIndexOutOfBibsException:index 1 out out bound for Length 1″。我不確定如何解決這個問題。有人能幫我弄一下這段代碼嗎?

如果數(shù)組的長度為1,我已嘗試中斷While循環(huán)。

public class Polynomial extends PolynomialInterface {
    public Polynomial(String s) {
        // complete this code
        Term newTerm;
        DList<Term> dList = new DList<Term>();

        int exp = 0;
        double coef = 0;

        s = s.replaceAll(" ", "");



        String[] array = s.split("\+|(?=-)");


       for(String i : array){
            System.out.println("split: " + i);
        }


        for (int i = 0; i <= array.length; i++) {

                while (array[i].contains("x")) {

                    exp = 0;

                    if ((array[i].substring(0, 1).equalsIgnoreCase("x"))) {
                        coef = 1;
                    }


                    if (array[i].substring(0, 1).equals("-") && array[i].substring(1, 2).equalsIgnoreCase("x")) {
                        coef = -1;
                        exp = 1;
                    }


                    if (array[i].contains("^")) {

                        int index = array[i].indexOf("^");
                        String myString = "";

                        if (index != -1) {
                            myString = array[i].substring(index + 1, index + 2);
                            if (!myString.isEmpty()) {
                                exp = Integer.parseInt(myString);
                            }
                        }

                    }

                    if (!array[i].contains("^")) {
                        exp = 1;
                    }




                    int end = array[i].indexOf("x");

                    String subString = "";

                    if (end != -1) {
                        subString = array[i].substring(0, end);
                        if (!subString.isEmpty() && !subString.contains("-")) {
                            coef = Double.parseDouble(subString);
                        } else if (!subString.isEmpty() && !subString.equals("-")) {
                            coef = Double.parseDouble(subString);

                        }
                    }


                    newTerm = new Term(coef, exp);
                    dList.addLast(newTerm);

                    if(array.length==1){
                        break;
                    }
                    i++;

                }

                while (array[i].matches("([-]\d*|\d*)") && (i < array.length)) {


                    coef = Double.parseDouble(array[i]);
                    exp = 0;

                    newTerm = new Term(coef, exp);
                    dList.addLast(newTerm);


                    break;

                }
            }








        //super.data = dList;



        }

當(dāng)我調(diào)試時,我得到了正確的系數(shù)和指數(shù),然后迭代,我得到了一個索引越界錯誤

推薦答案

for (int i = 0; i <= array.length; i++)

您的for循環(huán)轉(zhuǎn)到array.long,這會導(dǎo)致空指針異常。
請記住,在Java數(shù)組中,從0開始,以array.length-1結(jié)束,因此條件應(yīng)該是
數(shù)組長度

(&L)

這篇關(guān)于如何修復(fù)數(shù)組越界異常?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標(biāo)簽:修復(fù) 異常 數(shù)組 越界
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定