- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
// ask user to enter name of state capital
String answer = JOptionPane.showInputDialog("What is the capital of " +
question + "?");
// verify name of state capital is in citiesarray
boolean isPresent = false; int stateNum = 0;
System.out.println(answer); // troubleshooting line
for (int i = 0; i <= 49; i++) {
String city = citiesarray[i];
isPresent = answer.equalsIgnoreCase(city);
System.out.println(city); // troubleshooting line
System.out.println(answer.compareTo(city)); // troubleshooting line
System.out.println(isPresent); // troubleshooting line
if (isPresent == true) {
stateNum = i; break;
}
}
if (isPresent == false) {
JOptionPane.showMessageDialog(null, "That is incorrect. Please try another round.");
return;
}
每当我运行此代码时,无论我输入什么大写字母,我都会在循环的每次迭代中得到所有错误的 boolean 值。似乎对于 equalsIgnoreCase
返回 true 的任何城市的 compareTo
输出始终为 -1,但我不知道如何使用它来识别和解决我的问题。
我尝试了几种不同的方法,发现使用 Scanner 时,只要答案不包含空格,它似乎就可以工作,但这对于 JOptionPane
来说似乎并不重要,而且无论如何,无论州首府在哪里,我都需要它工作。
最佳答案
发布的代码工作正常,在调整循环限制后,我只需添加两行并将上面的代码复制到主方法中:
public static void main(String[] args) {
String[] citiesarray = { "New York", "Paris", "Berlin", "Brasilia" }; // not real ones, but wanted one with space
String question = "somewhere";
// ask user to enter name of state capital
String answer = JOptionPane.showInputDialog("What is the capital of " +
question + "?");
// verify name of state capital is in citiesarray
boolean isPresent = false; int stateNum = 0;
System.out.println(answer); // troubleshooting line
for (int i = 0; i < citiesarray.length; i++) {
String city = citiesarray[i];
isPresent = answer.equalsIgnoreCase(city);
System.out.println(city); // troubleshooting line
System.out.println(answer.compareTo(city)); // troubleshooting line
System.out.println(isPresent); // troubleshooting line
if (isPresent == true) {
stateNum = i; break;
}
}
if (isPresent == false) {
JOptionPane.showMessageDialog(null, "That is incorrect. Please try another round.");
return;
}
}
问题一定出在其他地方,可能是 citiesarray
的声明/初始化方式。
关于java - equalsIgnoreCase 方法不适用于 JOptionPane(或 Scanner)输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44566796/
有没有办法在不给出操作数错误的情况下实现这样的东西? if (check.equalsIgnoreCase("a"|| "e" || "i" || "o" || "u")) {} 最佳答案 已有 2
我是 Java 新手,我看过这段代码: if (!"".equalsIgnoreCase(queue) && queue.equalsIgnoreCase("my_data")) { } 你能给我解释
我花了几天时间尝试探索 Volley ,最后我设法找到使用 Method.POST 的方法。我正在使用 equalsIgnoreCase 创建登录名。我的 Web 服务返回一个包含 3 个参数的字符串
我想在使用 equals 方法时清理我的代码。我想知道是否有什么方法可以在 equals() 方法中一次添加更多参数。 目前,它看起来像这样: if (myString.equalsIgnoreCas
我为具有值(“全职”、“兼职”)的供应商列表的下拉框编写了查询,即,我想为供应商契约(Contract)选择列表添加下拉框,其中有 2 个值,全职 和兼职。 这是我的代码: Vendor Contra
在我的服务器类的主要方法中,我有一系列用于聊天程序的保留关键字的 if 语句,我正在尝试使用变量的值和 .equalsIgnoreCase 方法。问题是,即使我的变量具有特定值,在执行程序时代码总是进
我正在尝试运行一个 do...while 条件不满足,但出于某种原因,无论条件值如何,我的代码每次都会循环。我已经检查了我的调试器,变量的值是正确的,并且根据类似的逻辑满足循环内的条件。出于某种原因,
当我运行下面的程序时,它只打印 equals says they are equal 但是从 java 8 中的 equalsIgnoreCase 文档我们有: Two characters c1 a
我正在尝试编写一种方法,该方法以 string 的形式接受用户输入,然后根据字符串包含的内容/等于的内容返回 int 值。我已经写了一个可行的方法,但是它很长,我想知道是否有办法让它更短? 这是当前状
temp1 是“会计师”editText 是“会计师” 但我检查了 String.length(); temp1 是一个有 11 个字符的字符串 editText 有 10 个字符 我尝试了trim(
如果我使用此代码: if(new File(inputNickname + ".acc").exists() == false) { System.out.println("[Login] T
我设计了一个程序,要求用户输入任何内容。 一旦用户输入“STOP”一词,程序就会终止。但是我对 .equalsIgnoreCase 方法有点困惑。 这是可以正常工作的代码: import java.u
我正在使用 Spring 4 并使用以下 URL 进行 API 调用 我有一个 Java 枚举类,其定义如下: http://localhost.com:8080/int/fin/trs?bId=B-
我在比较两个字符串时遇到问题。两个字符串相同,但条件仍然失败。下面是我收到的代码和错误的屏幕截图。 下面是代码 public void validatePageHeader(String strE
boolean hasTaxes(){ return !state.equalsIgnoreCase("TX" || "NM" ||"VA" || "AZ" || "AK");
我想要的是无论用户输入什么,如果他们输入的第一个字母是'y'或'n',无论大小写,它都会打印“game start”。 我试过使用“字母”变量的 equalsIgnoreCase() 但它给出了错误:
我正在尝试在 while 循环中使用 equalsIgnoreCase() 来尝试检查是否使用 NOT (!) 运算符编写了非预期写入的内容。例如: String temp="A"; boolean
String.equalsIgnoreCase 的 javadoc 说: Two strings are considered equal ignoring case if they are of t
我目前有一个重写的 equals(Object) 看起来像这样: @Override public boolean equals(Object o) { if (o == this) retu
有一个问题: 我如何结合 message.equalsIgnoreCase 和 message.startswith() ? 即: if (message.startsWith("!spoiler")
我是一名优秀的程序员,十分优秀!