第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我的字符串比較代碼不起作用?

為什么我的字符串比較代碼不起作用?

POPMUISE 2022-12-15 16:19:14
這段代碼拋出錯誤“線程“main”中的異常 java.lang.ArrayIndexOutOfBoundsException:0在 basic2.compareStrPractice.main(compareStrPractice.java:15)”int i;    char[] chr1 = {};    char[] chr2 = {};    String s1 = "man";    String s2 = "nam";        for ( i= 0; i<s1.length(); i++){            chr1[i] = (char)s1.charAt(i);            chr2[i] = (char)s2.charAt(i);        }        if ((chr1[0] == chr2[2]) && (chr1[1] == chr2[1]) && (chr1[2] == chr2[0])){            System.out.println("They are Palindrom!");        }}我想打印聲明。但它拋出 ArrayOutOfBoundary 錯誤。
查看完整描述

3 回答

?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

問題是您聲明字符數(shù)組的方式。

char[] chr1 = {};

你這樣做的方式是用 0 的大小定義數(shù)組。

在 Java 中,您需要像這樣指定數(shù)組的大?。?/p>

char[] chr1 = new char[3];

它的作用是聲明一個預(yù)定義大小為 3 的 char 數(shù)組。


查看完整回答
反對 回復 2022-12-15
?
qq_遁去的一_1

TA貢獻1725條經(jīng)驗 獲得超8個贊

如果你正在嘗試為回文寫代碼,它在很多方面都是錯誤的,但對于錯誤,你正在初始化一個 0 大小的空數(shù)組,使用這個

char[] chr1 = new char[3];


查看完整回答
反對 回復 2022-12-15
?
鴻蒙傳說

TA貢獻1865條經(jīng)驗 獲得超7個贊

您還應(yīng)該首先檢查長度以確保它們相同。否則,您可能會得到另一個ArrayIndexOutOfBoundsException. 當您使用較長的字符串長度來索引較短的字符數(shù)組時,就會發(fā)生這種情況。

由于對于較長的字符串,您不希望在單個if語句中進行多次比較,因此您應(yīng)該使用循環(huán)并從一個數(shù)組的開頭和另一個數(shù)組的結(jié)尾開始進行比較。因此,如果長度為 5,您將比較 0 和 4 處的字符,然后是 1 和 3,然后是 2 和 2,然后是 3 和 1,依此類推。

以下是一些可能有幫助的其他提示。您不需要創(chuàng)建空數(shù)組并填充它們。字符串提供了這種能力。

char[] chr1 = s1.toCharArray();

事實上,您不需要分配給 String 變量。

char[] chr1 = "man".toCharArray();

以防萬一您想要分配給 String 數(shù)組而不是 char 數(shù)組,您可以這樣做來保存單個字符串數(shù)組。

String[] str1 = "abcdefghijklmnopqrstuvwxyz".split("");


查看完整回答
反對 回復 2022-12-15
  • 3 回答
  • 0 關(guān)注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號