在Java中,如何用特定的数字填充空数组?
我试图解决一个回文问题,即输入由字符串组成,如果两个字符串的串联表示一个回文单词(回文是一个可以在任意方向以相同方式读取的单词) 单词是回文:civic、radar、rotor和madam) 然后将其保存到数组中,以便稍后打印,否则打印“0” 但是我在用零填充空索引时遇到了一个问题,这里我得到了一个异常在Java中,如何用特定的数字填充空数组?,java,arrays,indexing,Java,Arrays,Indexing,我试图解决一个回文问题,即输入由字符串组成,如果两个字符串的串联表示一个回文单词(回文是一个可以在任意方向以相同方式读取的单词) 单词是回文:civic、radar、rotor和madam) 然后将其保存到数组中,以便稍后打印,否则打印“0” 但是我在用零填充空索引时遇到了一个问题,这里我得到了一个异常 for (int re = 0; re < result.length; re++) { if (result[re].equals(null)) {
for (int re = 0; re < result.length; re++) {
if (result[re].equals(null)) {
result[re] = "0";
}
}
"Exception in thread "main" java.lang.NullPointerException"
for(int re=0;re
这是我的全部代码
import java.util.Scanner;
public class Palindrome {
public static String reverse(String R2) {
String Reverse = "";
String word_two = R2;
int ln = word_two.length();
for (int i = ln - 1; i >= 0; i--) {
Reverse = Reverse + word_two.charAt(i);
}
return Reverse;
}
public static void main(String[] args) {
Scanner inpoot = new Scanner(System.in);
int stop = 0;
String pal1;
int Case = inpoot.nextInt();
String result[] = new String[Case];
String Final;
int NumberofWords;
for (int i = 0; i < Case; i++) {
NumberofWords = inpoot.nextInt();
String words[] = new String[NumberofWords];
for (int array = 0; array < words.length; array++) {
words[array] = inpoot.next();
}
for (int word1 = 0; word1 < NumberofWords; word1++) {
if (stop > Case) {
break;
}
for (int word2 = 0; word2 < NumberofWords; word2++) {
if (word1 == word2) {
continue;
}
Final = "" + words[word1].charAt(0);
if (words[word2].endsWith(Final)) {
pal1 = words[word1].concat(words[word2]);
} else {
continue;
}
if (pal1.equals(reverse(pal1))) {
result[i] = pal1;
stop++;
break;
} else {
pal1 = "";
}
}
}
}
// HERE IS THE PROBLEM
for (int re = 0; re < result.length; re++) {
if (result[re].equals(null)) {
result[re] = "0";
}
}
for (int x = 0; x < result.length; x++) {
System.out.println("" + result[x]);
}
}
}
import java.util.Scanner;
公共类回文{
公共静态字符串反转(字符串R2){
字符串反向=”;
字符串单词_two=R2;
int ln=word_two.length();
对于(int i=ln-1;i>=0;i--){
反向=反向+单词字符(i);
}
反向返回;
}
公共静态void main(字符串[]args){
Scanner inboot=新的扫描仪(System.in);
int stop=0;
字符串pal1;
int Case=inboot.nextInt();
字符串结果[]=新字符串[大小写];
弦乐决赛;
整数字;
for(int i=0;i案例){
打破
}
for(int-word2=0;word2像一个object.equals(null)
这样的测试毫无意义。实际上,如果anObject
为null,它将抛出NullPointerException
(NPE),如果不是,它将始终返回false
要测试引用是否为null,只需使用anObject==null
如果要检查result[re]
是否为null
,则不能使用equals
。使用身份比较:
if (result[re] == null) {
result[re] = "0";
}