[英]Can't get Strings compareTo method to work
由于某种原因,我无法使Strings compareTo方法正常工作。 我收到此错误消息:
exception in thread main java.lang.NullpointerException
at java.lang.String.compareTo(Unknown Source)
at Sort.main(Sort.java:27)
我该怎么做才能解决此问题? (此代码要求to数组已准备好单独排序。)
import java.util.*;
class Sort{
public static void main(String[] args){
String[] ord = new String[6];
ord[0] = "astra";
ord[1] = "bilum";
ord[2] = "deliber";
ord[3] = "kaliber";
ord[4] = "suppe";
ord[5] = "vorte";
String[] ordet = new String[6];
ord[0] = "akilles";
ord[1] = "kopper";
ord[2] = "lipton";
ord[3] = "mus";
ord[4] = "orkester";
ord[5] = "toving";
String[] flettet = new String[ord.length + ordet.length];
for(int i = 0; i < ord.length; i++){
int teller = i;
for(int j = 0; j < ordet.length; j++){
if(ord[i].compareTo(ordet[j]) > 0){ //line 27
teller += 1;
}
}
flettet[teller] = ord[i];
}
}
}
您的意思是-好像您设置了错误的数组:
String[] ordet = new String[6];
ordet[0] = "akilles";
ordet[1] = "kopper";
ordet[2] = "lipton";
ordet[3] = "mus";
ordet[4] = "orkester";
ordet[5] = "toving";
您永远不会将任何值分配给ordet。 所以compareTo将字符串与NULL比较
String[] ord = new String[6];
ord[0] = "astra";
ord[1] = "bilum";
ord[2] = "deliber";
ord[3] = "kaliber";
ord[4] = "suppe";
ord[5] = "vorte";
String[] ordet = new String[6];
ord[0] = "akilles"; //overwriting ord[0]
ord[1] = "kopper"; //overwriting ord[1]
ord[2] = "lipton"; //overwriting ord[2]
ord[3] = "mus"; //overwriting ord[3]
ord[4] = "orkester"; //overwriting ord[4]
ord[5] = "toving"; //overwriting ord[5]
String[] ordet = new String[6]; ord[0] = "akilles"; ord[1] = "kopper"; ord[2] = "lipton"; ord[3] = "mus"; ord[4] = "orkester"; ord[5] = "toving";
您从未填充过ordet
数组,只是ordet
了ord
数组。 此时, ordet
数组中没有元素,只有null
。
所以...
if(ord[i].compareTo(ordet[j]) > 0){ //line 27
正在与不存在的元素进行比较,并且#compareTo
引发NullPointerException,因为您传入的是null
而不是String
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.