2013-04-05 146 views
-2

有人可以解释这行代码的作用吗?为什么要减去'a'

for(k=0; k < limit; k++) 
{ 
    int index = s.charAt(k) - 'a';  <---> THIS LINE 
} 
t.myIsWord = true; 

为什么是 - 'a'?我不明白

+0

当您在调试器中运行它时,它会做什么? – KevinDTimm 2013-04-05 16:45:50

回答

1
int index = s.charAt(k) - 'a'; 

在Java中的char可以铸造为int。每个字符都有一些int值,但'a'为0且'b'为1并不是真的。这些值是不同的(基于ASCII表中的位置)。

要让'a'为0,'b'为1等,您需要从给定的字符中减去'a'。

这就是这条线所做的。

+0

感谢您的解释 – ciastkoo 2013-04-05 16:41:45

7

它转换'a'0'b'1'c'2等等...

相关问题