str = "abcdefghijk"; 从 str 取出字符串的子范围,其形式为: str[i..j],那么i 和 j 的大小,正负分别是如何取字符串的呢?如果 str[0]呢是什么,表示什么?
str[i..j]
i j 表示索引值,如果是负的就是从尾部开始,第一个字符的索引值是0,最后一个是-1
所以第二个是2,倒数第二个是-2
后面的i j 都建立在现在说的基础上,即包含负数情况
str[i..j]表示从第i个到第j个的字符,如果第i个在第j个的后面则返回一个空字串
那么str[0..2] == "abc"(0表示第一个,2表示第三个)
str[2..0] == "" (第三个在第一个后面,所以是空的字串)
str[-2..-1] == "jk" (-2代表倒数第二个,-1代表倒数第一个)
str[-1..-2] == "" (倒数第一个在倒数第二个后面,所以是空字串)
还有,如果str[i..j]中可以省略i 或者j 省略i则i==0,省略j则j==-1
所以str[..] == str
str[..2] == "abc"
str[-2..] == "jk"
str[9..] == "jk"
最后,再说一个,str[i..j]里面i和j可以用<1或者>5这种形式
大家自己试一试str[..<4]是什么,看看这个东西表示什么,具体我就不说了,给大家一点悬念。
string是一个整数数组,str[ i ]这种形式明显是对数组的操作,所以str[0]返回的是这个数组中的第一个元素
在 LPC 里面,字符的值是和数值等同的,但是范围在0~255之内
具体的值参照 ASCII 编码表,ASCII 是一项标准,通过 ASCII 可知 a 的值是97
所以str[0] == 97 了
另外,可以用单引号的形式表示一个“字符”,而不是字串,例如'a',但是,LPC里面没有字符变量
而且刚才说过 LPC 里面字符是和数值等同的,所以 'a' == 97
str[i..j] 中,j 为负数会提示错误的,当然可以返回"", str[-2..-1]在程序中是会报错误的,返回""; i 也不可以省略,j 可以省略,i省略会出错,str[..2]和str[..]会出错, str[2..<4]表示从第2个到到数第3个之间的字符, i 和 j 不可以用>5这种形式,会报错;如果str[-2..7]中i=-2就是从等同i=0,从头开始的.