【问题标题】:What does following code means int val = str.charAt(i) - 'a';?以下代码是什么意思 int val = str.charAt(i) - 'a';?
【发布时间】:2014-05-09 19:40:38
【问题描述】:

代码取自职业杯书

public static boolean isUniqueChars(String str)  {

    if (str.length() > 256) {
        return false;`
    }

    int checker = 0;
    for (int i = 0; i < str.length(); i++) {
        int val = str.charAt(i) - 'a';
        if ((checker & (1 << val)) > 0) return false;
        checker |= (1 << val);
    }
    return true;
}

感谢您的解释,我不确定我会得到什么。让我们看看下面的代码-

public class ConvertAscii {

    public static void main(String args[]){
        String str ="Hello How are you";
        int i =0;
        for(i=0;i<str.length();i++){
            System.out.println(str.charAt(i)-'a');
        }
    }

}

它给了我以下输出-

-24 12 32 34

和上面的例子一样

例如,如果 str 为“fbhsdsbfid”且 i 为 4,则 val 等于 3。从另一个字符中减去字符 'a' 的 ascii 值会导致什么结果?请多解释

【问题讨论】:

  • 请添加一个标签来表明这是什么语言。 (是 Java 吗?)此外,CareerCup 是一个出版商。您可能想指定您指的是他们的哪些书。 (这个问题已经有 4 年了,而且 OP 最近还没有出现在网站上。也许其他确定这是什么语言的人可以添加标签。)

标签: string char


【解决方案1】:

要回答索引 i = 4 的问题,索引 4 处的字符是“d”,其对应的 ASCII 值为 64。

'a' 的 ASCII 值是 61。因此,str.charAt(i) - 'a' 给出 64 - 61 = 3。

【讨论】:

    【解决方案2】:

    它取str 中索引i 处的字符并减去字符'a' 的ASCII 值。

    例如,如果str 是“fbhsdsbfid”,i 是 4,那么 val 等于 3。

    【讨论】:

    • int val = str.charAt(i) - 'a';它基本上是在字符串'str' with ascii number 中的索引 i 处减去 char 的 'ascii number'字符 'a'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多