我正在编写一个方法,它接受一个字符串并搜索所有包含匹配子字符串的名称,但是如何制作
targetSubstring
这是用户输入JTextField的名称和
namesArray[I].getname()
这是输入文件中存储在数组中的数据,不区分大小写?因此,当用户输入例如Sam时,我希望它能够找到Sammy和Isamer(因为它包含名称中的sam)。然而,为了实现这一点,我需要Sam不区分大小写。那我该怎么做呢?我尝试过.toLowerCase,因为我认为这样可行,但是我得到了不同的编译器错误。我只是使用.toLowerCase吗?这是我尝试使用.toLowerCase的最后一件事,但它不起作用。
if (namesArray[i].getName().toLowerCase.contains(targetSubstring.toLowerCase))
这是方法......
private void match(String targetSubstring)
{
displayArea.setText("");
displayArea.append("FIND RESULTS for: " + targetSubstring);
displayArea.append("\n");
displayArea.append("\n Name Best Decade");
displayArea.append("\n--------------- ---------------");
for (int i = 0; i < namesArray.length; i++) {
if (namesArray[i].getName().contains(targetSubstring))
{
displayArea.append("\n" + namesArray[i].getName() + " " +
namesArray[i].bestDecade());
}
}
}
答案 0 :(得分:3)
targetSubstring = targetSubstring.toUpper ();
for (int i = 0; i < namesArray.length; i++) {
String theName = namesArray[i].getName();
if (theName.toUpper ().contains(targetSubstring))
{
displayArea.append("\n" + theName + " " + namesArray[i].bestDecade());
}
}
答案 1 :(得分:1)
或者你可以像Gregory建议的那样使用代码但是使用 来自org.apache.commons.lang的StringUtils
for (int i = 0; i < namesArray.length; i++) {
String theName = namesArray[i].getName();
if (StringUtils.containsIgnoreCase(theName, targetSubstring ))
{
displayArea.append("\n" + theName + " " + namesArray[i].bestDecade());
}
}