【发布时间】:2020-04-09 07:44:03
【问题描述】:
我一直试图弄清楚这一点,但我不知道该怎么做。我必须使用 compareTo() 方法按字母顺序对两个不同的字符串进行排序,但是,编译器输出“可能丢失精度”,我不知道该怎么做。这是代码;
String Word1;
String Word2;
char Compare;
int Word1_Length = 0;
int Word2_Length = 0;
System.out.println("This event will require you to enter two words.");
System.out.println("PLEASE ENTER THE FIRST WORD");
Word1 = in.readLine();
Word1_Length = Word1.length();
System.out.println(Word1_Length);
Word1_Letter0 = Word1.charAt(0);
System.out.println(Word1_Letter0);
System.out.println("PLEASE ENTER THE SECOND WORD");
Word2 = in.readLine();
Word2_Length = Word2.length();
System.out.println(Word2_Length);
Word2_Letter0 = Word2.charAt(0);
System.out.println(Word2_Letter0);
Compare = Word1.compareTo(Word2);
System.out.println(Compare);
【问题讨论】:
-
我无法编译你的代码。在我的 Eclipse 中,我在行
Compare = Word1.compareTo(Word2);上得到 Type mismatch: cannot convert from int to char。这是您询问的同一问题的不同症状。 -
什么是
in?Word1_Letter0是什么?Word2_Letter0是什么? --- 你为什么认为在两个String对象(Word1和Word2)上使用compareTo()的结果是char值(Compare),当它被记录 i> 返回int? -
仅供参考: Java 命名约定是局部变量名称以小写字母开头,因此应为
word1、word2、compare、word1_Length等。 -
欢迎来到 Stack Overflow。如果您遵循 Java 命名约定,我们将更容易阅读您的代码(您希望我们这样做)。变量名应以小写字母开头。
-
我想这里的具体问题是
Word1.compareTo(Word2)返回一个int,但Compare是一个char。将Compare声明为int。
标签: java methods variable-assignment