0 0

这段代码上的toUpperCase和toLowerCase为什么都要判断呢10

        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) {
                    c1 = Character.toUpperCase(c1);
                    c2 = Character.toUpperCase(c2);
                    if (c1 != c2) {
                        c1 = Character.toLowerCase(c1);
                        c2 = Character.toLowerCase(c2);
                        if (c1 != c2) {
                            return c1 - c2;
                        }
                    }
                }
            }
            return n1 - n2;
        }


难道判断一个还不够安全?
比如说A和b不等,都转成大写字母(或者小写字母)判断一下就行了呗,难道是为了特殊的字符?
问题补充:
可能是我没有说清楚
我的意思是两个不相等的字符如'A'和'h',用toUpperCase判断后为什么还要用toLowerCase再判断一次?
问题补充:
那哪些特殊的字符需要两次判断?
谢谢啦
问题补充:
举一个例子就好
问题补充:
哈哈,
我也找到一个
Character.toUpperCase('ú')


谢谢大家,我真想每个人都给点分
问题补充:
分给蔡华江吧
虽然lovewhzlq答得是对的
谢谢lovewhzlq,你已经帮我解答过好几个问题了。。。
2009年10月12日 16:52

7个答案 按时间排序 按投票排序

0 0

采纳的答案

Character.isUpperCase(Character.toUpperCase('ⴌ'))

2009年10月12日 22:12
0 0

引用
Unfortunately, conversion to uppercase does not work properly for the Georgian alphabet, which has strange rules about case conversion.  So we need to make one last check before exiting.


Sun说的!

2009年10月12日 22:02
0 0

看到没
public static char toUpperCase(char ch)使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写。
注意,对于某些范围内的字符,特别是那些是符号或表意符号的字符,Character.isUpperCase(Character.toUpperCase(ch)) 并不总是返回 true。

2009年10月12日 22:02
0 0

如果只是普通字符的话,那当然是没必要做两次判断 了

2009年10月12日 21:54
0 0

是啊,不就是比较大小,忽略大小写么。

2009年10月12日 18:57
0 0

看api说明啊

public static char toUpperCase(char ch)使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写。
注意,对于某些范围内的字符,特别是那些是符号或表意符号的字符,Character.isUpperCase(Character.toUpperCase(ch)) 并不总是返回 true。

通常,应该使用 String.toUpperCase() 将字符映射为大写。String 大小写映射方法有几个胜过 Character 大小写映射方法的优点。String 大小写映射方法可以执行语言环境敏感的映射、上下文相关的映射和 1:M 字符映射,而 Character 大小写映射方法却不能。

注:此方法无法处理增补字符。若要支持所有 Unicode 字符,包括增补字符,请使用 toUpperCase(int) 方法。


参数:
ch - 要转换的字符。
返回:
等效于字符的大写形式,如果有的话;否则返回字符本身。

2009年10月12日 16:59
0 0

....为什么不直接用compare ignore case?

2009年10月12日 16:52

相关推荐

    字符串操作

    执行完这段代码后,`text`变量的值将会变成`"ABCDEF"`。 #### 二、字符级别的大小写转换 除了字符串级别的转换之外,有时候还需要对单个字符进行大小写转换。 ##### 1. 将字符转换为小写 可以使用`Character....

    Java上机的实验七.pdf

    文档片段中可以观察到,Java代码中的注释被用来解释或者暂时禁用某段代码。例如,以`//`开头的注释解释了代码的作用,而被注释掉的代码`//s1=s1+Character.toUpperCase(c);`和`//s1=s1+Character.toLowerCase(c);`则...

    常用JS代码

    `.toUpperCase()`和`.toLowerCase()`方法分别用于将字符串转换为全部大写或小写字母。这在数据标准化、比较或格式化输出时非常有用。 ### 35. 查找子字符串位置:`indexOf()` `indexOf()`方法返回子字符串首次出现...

    java代码-编写一个程序判断字符串“Tom”是否在另一个字符串“I am Tom, I am from China”中出现。

    这段代码首先定义了两个字符串变量`str`和`target`,分别存储主字符串和要查找的目标字符串。然后使用`contains()`方法来检查`str`是否包含`target`。如果包含,程序将打印一条消息,表示目标字符串存在于主字符串中...

    编写一个程序,实现字符串大小写的转换并倒序输出

    - 使用`Character`类提供的静态函数`isLowerCase()`和`isUpperCase()`来判断字符是否为小写或大写字母。 - 使用条件判断`if (c &gt;= 'a' && c )`或`if (c &gt;= 'A' && c )`来判断字符是否为小写或大写字母。 对于...

    北大青鸟Java.lang.rar经典例子

    7. **Character类**:提供了一些处理单个字符的方法,如`isDigit()`(判断字符是否为数字)、`toUpperCase()`(转换字符为大写)和`toLowerCase()`(转换字符为小写)。 8. **ClassLoader类**:负责加载类到Java...

    JavaScript的107则使用技巧大全

    - `for`循环是一种常用的迭代结构,用于重复执行一段代码直到满足特定条件为止。 - 示例代码: ```javascript for (var i = 0; i ; i++) { console.log(i); } ``` #### 16. 循环中止 - **知识点**:`break` ...

    字符串文档.txt

    这段代码定义了Java程序的入口点。其中: - `public` 表示该方法可以被任何类访问。 - `static` 表明这是一个静态方法,可以直接通过类名来调用,无需实例化对象。 - `void` 表示该方法没有返回值。 - `main` 是Java...

    107个常用javascript语句

    `new String("Thisislightsword")`创建一个字符串对象,而`string.toUpperCase()`和`string.toLowerCase()`方法分别将字符串转换为全大写或全小写。此外,`String1.indexOf("String2")`方法用于检查一个字符串是否...

    jstl fn函数 and EL

    这段代码使用了EL表达式来访问`manageUser.usersList`对象的长度,并通过`fn:length`函数计算出其长度值。 ##### EL表达式的语法特点 - EL表达式以`${`开头,以`}`结尾。 - 可以使用`.`或`[]`来访问对象属性。 - ...

    java学习源码,很好的资料,很全的资料

    下面这段代码示例涵盖了多种字符串比较与操作的方法。 ##### 2.1 字符串比较 1. **直接比较(==)**:该操作符用于检查两个字符串变量是否引用了内存中的同一个对象。 ```java System.out.println("s1==s2 is " +...

    javascript实例技巧(收集的)

    6. 转换大小写:`toUpperCase()`和`toLowerCase()`用于将字符串转换为大写或小写。 7. JavaScript数据类型:包括`String`, `Number`, `Boolean`, `Null`, `Object`和`Function`。其中,`Null`和`undefined`是两种...

    String类的笔记

    这段代码通过循环找到非空格字符的起始和结束位置,然后使用`substring()`方法截取有效部分。 #### `StringBuffer`与`StringBuilder` `StringBuffer`和`StringBuilder`类提供了一种可变的字符串解决方案,与`...

    EL表达式函数

    假设我们需要在JSP页面上显示用户输入的一段文本,并且需要检查这段文本是否以 "Welcome" 开头,是否以 "!" 结尾,同时统计该文本中 "the" 出现的次数。 1. **引入标签库声明**: ```jsp ``` 2. **编写HTML...

    java代码-编写这样一个程序找出字符串“My name is Tom, I come from China.”中的大写字母,并打印输出。

    在Java编程语言中,处理字符串是一项常见的任务。本示例中的程序旨在找出并打印出给定字符串中的所有大写字母...通过学习和理解这段代码,开发者可以掌握在Java中处理字符串的基本技巧,这对于日常的编程工作至关重要。

    javascript使用技巧

    [updateExpression]) { insideLoop }` 循环结构允许重复执行一段代码直到满足特定条件为止。 16. **循环中止** - 使用 `break` 语句可以在循环中提前终止循环。这对于避免无限循环和优化循环性能很有帮助。 17....

    js 经典语句

    - **大小写转换**:要将字符串转换为大写或小写,可以使用 `toUpperCase()` 和 `toLowerCase()` 方法。例如,要将一个输入框中的值转换为大写并输出,可以使用: ```javascript document.getElementById("output")...

    javascript常用关键字

    `这段代码展示了如何将输入框中的文本转换为大写并显示在另一个元素中,利用了`toUpperCase()`方法进行字符串转换。 ### 7. JavaScript数据类型 JavaScript中有六种基本数据类型:`String`、`Number`、`Boolean`、`...

Global site tag (gtag.js) - Google Analytics