相关疑难解决方法(0)

Java:String:equalsIgnoreCase vs将所有内容切换为大写/小写

我注意到有几种方法可以比较Java中的字符串.

我很久以前习惯使用equalsIgnoreCase以避免出现区分大小写的字符串问题.

另一方面,其他人喜欢以大写或小写的方式传递所有内容.

从我的立场(即使技术上我坐着),我看不出真正的区别.

有人知道一种做法是否优于另一种做法?如果是这样,为什么?

java string string-comparison

25
推荐指数
2
解决办法
5万
查看次数

了解CaseInsensitiveComparator中的逻辑

任何人都可以解释以下代码String.java,特别是为什么有三个if语句(我已经标记//1,//2并且//3)?

private static class CaseInsensitiveComparator
                     implements Comparator<String>, java.io.Serializable {
// use serialVersionUID from JDK 1.2.2 for interoperability
private static final long serialVersionUID = 8575799808933029326L;

    public int compare(String s1, String s2) {
        int n1=s1.length(), n2=s2.length();
        for (int i1=0, i2=0; i1<n1 && i2<n2; i1++, i2++) {
            char c1 = s1.charAt(i1);
            char c2 = s2.charAt(i2);
            if (c1 != c2) {/////////////////////////1
                c1 = Character.toUpperCase(c1);
                c2 = Character.toUpperCase(c2);
                if (c1 != c2) {/////////////////////////2
                    c1 = …
Run Code Online (Sandbox Code Playgroud)

java string jdk1.6

25
推荐指数
4
解决办法
2761
查看次数

如何比较原始类型中的字符忽略情况

我正在写这些代码行:

String name1 = fname.getText().toString();
String name2 = sname.getText().toString();
aru = 0;

count1 = name1.length();
count2 = name2.length();
for (i = 0; i < count1; i++)
{  
    for (j = 0; j < count2; j++)
    { 
        if (name1.charAt(i)==name2.charAt(j))
            aru++;
    }
    if(aru!=0)
        aru++;
}
Run Code Online (Sandbox Code Playgroud)

我想比较Character两个人String忽视这个案子的情况.简单地使用IgnoreCase不起作用.添加"65" ASCII值也不起作用.我该怎么做呢?

java string character case-sensitive case-insensitive

22
推荐指数
3
解决办法
9万
查看次数

对CaseInsensitiveComparator的实现感到好奇

当我检查执行CaseInsensitiveComparator,这是私有内部类String,我发现奇怪的事情.

private static class CaseInsensitiveComparator
        implements Comparator<String>, java.io.Serializable {
    ...
    public int compare(String s1, String s2) {
        int n1 = s1.length();
        int n2 = s2.length();
        int min = Math.min(n1, n2);
        for (int i = 0; i < min; i++) {
            char c1 = s1.charAt(i);
            char c2 = s2.charAt(i);
            if (c1 != c2) {
                c1 = Character.toUpperCase(c1);
                c2 = Character.toUpperCase(c2);
                if (c1 != c2) {
                    c1 = Character.toLowerCase(c1);
                    c2 = Character.toLowerCase(c2);
                    if (c1 != c2) {
                        // …
Run Code Online (Sandbox Code Playgroud)

java string comparator

19
推荐指数
1
解决办法
654
查看次数