㈠ java 數組下標越界怎麼處理
因為你運行的時候沒有給它穿參數。args的長度是0,所以會出現下標越界。
㈡ 在java中,解決數組下標越界的問題
如果您使用的是原始類型,如int,長,字元,短,位元組,浮點型,雙和字元數組字元串數組,數組的一次聲明的大小是固定的,不能元素的主題下,唯一可以刪除某些底層的元素被改變的重新分配
一個[指數] =新的價值。
如果作為容器類,如列表的數組,ArrayList的是從集合繼承。該介面定義了指定的元素集合
的單個實例中刪除的布爾刪除(對象o)。那麼它的所有子介面也有這種方法。
㈢ JAVA 數組下標越界問題
你的循環條件錯了。
因為數組的索引下標是從0開始的。如果定義了一個長度為3的數組int[] a=new int[3];
它裡面的數據存放在a[0],a[1],a[2] 中 如果在有一個a[3] 就錯了。所以你的循環條件要改一改 改成 for(int i=0;i<x;i++) 或者是 for(int i=0;i<=x-1;i++) 就好使了
㈣ java數組下標越界是什麼異常
應該是非受查異常,此異常是編碼控制能力之內能搞定的異常,一旦出現此異常說明程序編寫就有問題,因此系統不推薦捕獲。不捕獲編譯能通過,但運行直接報錯。
㈤ java新手數組下標越界異常
數組下標越界異常很常見,比如test[4],只能使用test[0]、test[1]、test[2]、test[3],如果使用test[4]以及其他的就會報錯了,特別是在使用循環獲取數組每個值的時候一定要注意,如果出現越界,就把角標列印輸出看一下。
㈥ Java編程中 常見的異常有哪幾種
相信作為程序員的我們在對程序進行編譯過程中經常會遇到錯誤,或者在運行過程中出現錯誤,在這里主要跟大家談談經常遇到的一些異常與錯誤,以及解決辦法。
異常是指程序在編譯或運行過程出現的錯誤。
在java.lang包中Throwable包含了所有的異常。
Error (錯誤) 和Exception(異常)
(1)Error(錯誤)
一旦發生無法修復,但可以避免發生。
常見錯誤類:
IOError:I/O錯誤,當發生嚴重的I/O錯誤時,拋出此錯誤。
VirtualMachineError:虛擬機錯誤,當 Java 虛擬機崩潰或用盡了它繼續操作所需的資源時,拋出該錯誤。
StackOverflowError:棧內存滿了,當應用程序遞歸太深而發生堆棧溢出時,拋出該錯誤。
OutofMemoryError:堆內存滿了,因為內存溢出或沒有可用的內存提供給垃圾回收器時,Java 虛擬機無法分配一個對象,這時拋出該異常。
以上是一些常見的錯誤,在Error類中還有一些別的錯誤(參照文件Java.lang.Throwable.Error).
(2)Exception(異常)
一旦發生,可以捕獲並處理,不會導致程序終止,有時可以避免有時無法避免。
異常的分類:
1.編譯時異常(需要強制處理) 2.運行時異常(不需要強制處理)
常見的異常有:
IOException:輸入輸出流異常
FileNotFoundException:文件找不到的異常
ClassNotFoundException:類找不到的異常
DataFormatException:數據格式化異常
NoSuchFieldException:沒有匹配的屬性異常
NoSuchMethodException:沒有匹配的方法異常
SQLException:資料庫操作異常
TimeoutException:執行超時異常
常見的運行時異常:
RuntimeException:運行時異常
NullPointerException:空指針異常
:數組越界異
ClassCastException:類型轉換異常
IllegalArgumentException:非法的參數異常
InputMismatchException:輸入不匹配
以上是常見的一些異常,另外還有別的異常,參見文件:Java.lang.Throwable.Exception
既然我們常常會遇到一些異常,那我們如何來處理這些異常就是一個急需解決的事情。
(1) 如何處理編譯時異常?
方法一:將需要處理的代碼塊放在一個try...catch...中
try{
//需要處理異常的代碼
}catch(XXXException ef){
ef.printStackTrace();
}
我們方法一就是要將我們不確定的代碼放入try......catch中,先進行try一下,如果沒有異常,則不會觸發catch,沒有輸出,一旦出現異常,那麼catch就會工作,在catch中捕獲異常信息,根據異常信息進行補救措施。
如以下代碼:
從結果可以看出,我們在輸入數據的時候出現錯誤,這樣通過自定義異常能夠讓我們更直接快速的找到運行或編譯時的異常。
在上述中我們分別提到了三種throw,分別是Throwable,Throws以及throw,那麼到底三者有什麼區別?
Throwable:是指在在Java.lang包中的一個類,其包含了所有的異常和錯誤,其中類Error和Exception 是它
的子類。
Thows:是指在解決編譯時異常,將方法中異常拋給上一級,在方法後面要加Throw Exception來進行拋。
throw:是指在自定義異常時,如果方法出現異常,那麼將作為引用方法的對象拋出。即拋出異常。
希望對您有所幫助!~
㈦ Java數組下標越界
i < a2出錯,修改如下:
if (a1 >= 0 && a1 < a2 && a2 < m_ary.length) {
sa = new int[a2 - a1 + 1];//2 到6是5個元素
for (int i = 0, j = a1; i < a2-1; i++, j++)
sa[i] = m_ary[j];//a2=6,所以i< a2-1才可以
完整代碼
package Test;
public class ArreyTest {
public static void main(String[] args) {
int[] aaa = { 23, 14, 35, 2, 71, 55, 82, 41, 11, 6 };
Ary ay1 = new Ary(aaa);
ay1.print();
ay1.order();
ay1.print();
for (int m = 0; m < aaa.length; m++)
System.out.print("---" + aaa[m]);
System.out.println();
Ary ay2 = new Ary(ay1.subAry(2, 6));
ay2.print();
}
}
class Ary {
int[] m_ary;
Ary(int[] p) {
m_ary = p;
}
void print() {
for (int i = 0; i < m_ary.length; i++)
System.out.print(m_ary[i] + " ");
System.out.println();
}
void order() {
int j, temp;
boolean exchange = true;
j = m_ary.length - 2;
while (j >= 0 && exchange) {
exchange = false;
for (int i = 0; i <= j; i++)
if (m_ary[i] > m_ary[i + 1]) {
exchange = true;
temp = m_ary[i];
m_ary[i] = m_ary[i + 1];
m_ary[i + 1] = temp;
}
j = j - 1;
}
}
int[] subAry(int a1, int a2) {
int[] sa;
if (a1 >= 0 && a1 < a2 && a2 < m_ary.length) {
sa = new int[a2 - a1 + 1];//2 到6是5個元素
for (int i = 0, j = a1; i < a2-1; i++, j++)
sa[i] = m_ary[j];//a2=6,所以i< a2-1才可以
return sa;
} else {
System.out.println("error index");
return new int[1];
}
}
}
㈧ 在java開發中遇到string index out of range:4 這是什麼原因
在java開發中遇到string index out of range:4 的原因一般是數組下標越界。學習java開發推薦千鋒教育!
在java開發中遇到的常見的難點還有java.lang.nullpointerexception,這個異常大家肯定都經常遇到,異常的解釋是"程序遇上了空指針",簡單地說就是調用了未經初始化的對象或者是不存在的對象,這個錯誤經常出現在創建圖片,調用數組這些操作中,比如圖片未經初始化,或者圖片創建時的路徑錯誤等等。對數組操作中出現空指針,很多情況下是一些剛開始學習編程的朋友常犯的錯誤,即把數組的初始化和數組元素的初始化混淆起來了。數組的初始化是對數組分配需要的空間,而初始化後的數組,其中的元素並沒有實例化,依然是空的,所以還需要對每個元素都進行初始化(如果要調用的話)
想要了解更多有關java開發的相關信息,推薦咨詢千鋒教育。千鋒勵精圖治,不改教育初心。十一年來,千鋒以政策為引導,不斷完善國內特色現代職業教育體系建設,充分發揮教研師資隊伍使命,構建品質教育,加大創新型人才培養力度,為經濟發展提供智力人才和智力支撐,成為新時期職業教育發展的新方向,在同行業中有很高的美譽度。實力強大,口碑良好,值得每位學員信賴和選擇!
㈨ java 數組下標越界異常 因為演算法是這樣,i-1出現小於0的情況,如何讓程序忽略這種情況,繼續正確運行下去
那你何不把for循環改成for(i = 1;i<=array.length;i++){for(j = 1;j<=array.length;j++)}呢?反正i= 0和j = 0時那段代碼的循環都執行不了,如果實在不行,還可以加個if判斷啊,就是當i或j等於0時跳出循環continue不就得了。