说我有两个字符串,
String s1 = "AbBaCca";
String s2 = "bac";
Run Code Online (Sandbox Code Playgroud)
我想执行一个s2包含在其中的检查返回s1.我可以这样做:
return s1.contains(s2);
Run Code Online (Sandbox Code Playgroud)
我很确定这contains()是区分大小写的,但是我无法通过阅读文档来确定这一点.如果是,那么我想我最好的方法是这样的:
return s1.toLowerCase().contains(s2.toLowerCase());
Run Code Online (Sandbox Code Playgroud)
除此之外,还有另一种(可能更好的)方法来实现这一目标而不关心区分大小写吗?
在我听到有人在我的工作中使用String.toLowerCase()在数据库中存储不区分大小写的代码以进行搜索之后,我有一个史诗般的失败时刻,想到它可能出错的方式:
哪些技术受Unicode版本的影响?
我是否需要担心Oracle或SQL Server(或其他供应商)更改其unicode版本并导致我的某个区域设置不会导致相同的低位或高位字符转换?
我该如何管理?我被确保使用数据库转换的"简单性"所诱惑,但是当有升级时,它将成为同样的问题.
考虑:
public static void main(String[] args) {
String s = "AbcD";
System.out.println(s.contains("ABCD"));
System.out.println(s.contains("AbcD"));
}
Run Code Online (Sandbox Code Playgroud)
输出:
false
true
Run Code Online (Sandbox Code Playgroud)
无论如何,我都要求结果在两种情况下都是正确的.可能吗?
考虑:
object HelloWorld {
def main(args: Array[String]): Unit = {
val s:String = "AbcD"
println(s.contains("ABCD"))
println(s.contains("AbcD"))
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
false
true
Run Code Online (Sandbox Code Playgroud)
无论如何,我都要求结果在两种情况下都是正确的.可能吗?
我正在将一个文本文件读入我的程序,并让用户搜索一个字符串.我怎样才能使它不区分大小写呢?这是我的代码片段:
while (str1.hasNextLine())
{
String line = str1.nextLine();
line = line.replace(";", " ");
if(line.contains(Val))
{
System.out.println(line);
}
}
Run Code Online (Sandbox Code Playgroud)
Val是字符串变量.它是用户输入的字符串,如果在文本文件中找到,则该字符串将在该行上打印出来.但我需要它不区分大小写.出于某种原因,当我使用equals.IgnoreCase它时,它不起作用.
我想解析一个字符串,以查看它是否匹配整个字符串或子字符串.我试过这个:
String [] array = {"Example","hi","EXAMPLE","example","eXamPLe"};
String word;
...
if ( array[j].toUpperCase().contains(word) || array[j].toLowerCase().contains(word) )
System.out.print(word + " ");
Run Code Online (Sandbox Code Playgroud)
但我的问题是:
当用户输入单词"Example"(区分大小写)并且在我的数组中"Example"它没有打印它,它只打印"EXAMPLE","example"那是因为当我的程序比较两个字符串时它将我的array[j]字符串转换为大写或小写,所以它不匹配单词大写和小写都像"示例"这样的单词.
所以在这种情况下,如果用户输入"Examp"我想要打印:
Example EXAMPLE example eXamPLe
Run Code Online (Sandbox Code Playgroud)