=运算符抛出异常
我是一个非常努力的Java程序员。我试图使用compareTo函数对字符串数组进行排序。但在我的代码中,'='运算符在代码中导致问题。有人可以帮我吗?由于=运算符抛出异常
public class StringSort
{
static String arr[]= ("Now","My","There","When");
public static void main(String[] args)
{
for(int i=0;i<arr.length;i++)
{
for(int j=0;j<arr.length;j++)
{
if(arr[i].compareTo(arr[j])<0)
{
String t=arr[j];
arr[j]=arr[i];
arr[i]=t;
}
}
}
}
}
使用大括号,而不是周围的数组初始化paratheses。
static String arr[]= {"Now","My","There","When"};
当直接声明一个数组,并且里面的项目使用大括号。
static String arr[]= {"Now","My","There","When"};
static String arr[]= new String[]{"Now","My","There","When"};
这是更好地使私人和最终如果你能。也可以使用Java数组符号来代替f C符号。
private final static String[] arr = {"Now","My","There","When"};
其也最好限制的字段到它是生命的范围(即创建,使用和丢弃)。即它只在一种方法中使用,所以你可以在那里定义它。
public static void main(String[] args) {
String[] arr = "Now,My,There,When".split(",");
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
您还需要考虑如何使用该方法。如考虑通话的频率和创建字段值的成本。在这种情况下,因为它是'main'只有一次,但是在真实的类和方法中,即使范围仅仅是方法,静态初始化类中的字段(而不是方法)通常仍然是有用的。 –
@KevinBrock真的,生命周期很重要,编辑... –
当然,我们可以猜测究竟是什么问题,它发生在哪里......在这种情况下,它碰巧很容易。一般来说,如果你明确描述发生了什么样的异常/错误,那么每个人的生活都会更容易。如果是运行时错误,则还应该描述输入和输出数据(如果适用)。 –
下一次当问一个问题时,请指出发生错误的行号以便我们更容易回答。在这个问题中有6个'='操作符。 –