【发布时间】:2016-10-01 15:01:32
【问题描述】:
这是我在这里的第一篇文章,我对 Java 很陌生,所以要温柔。
我正在使用 compareTo() 进行分配,基本上用户将输入他们的姓名。如果该名称出现在我已经在 String 中设置的某些名称之前、之后或之间,那么它将相应地显示一条消息。
我基本上想知道最简单的方法是什么?将名称转换为ints,这样我就可以更轻松地执行 nameA > nameB ... 等等
int result;
String name;
String nameB = "Baggins";
String nameD = "Dresden";
String nameH = "Howl";
String nameP = "Potter";
String nameV = "Vimes";
System.out.println("What's your last name?");
name = inputReader.next();
result = name.compareTo (nameB);
if (result < 0){
System.out.println("Great! You are on team Red Dragons.");
}
这应该适用于这一行,但现在我需要查看他们输入的内容是否介于 nameB 和 nameD 之间,并且我不能将 > 和 < 与字符串一起使用。
【问题讨论】:
-
打开String(或者可能是CharSequence)类的源代码...
-
您可以编写自己的 Comparator 类来比较两个字符串的第一个字母
-
另一种骇人听闻的方法是设置如下条件:
if (name.compareTo (nameB) < 0 && name.compareTo (nameD) > 0)。但是@cricket_007 建议的解决方案是更好的方法。