编辑: xiong447385 2017-10-08

28 | Kotlin 从零到精通 Android 开发 这种字符串数组的声明方式是不是很熟悉?看起来就跟 Java 里面的 ArrayList 用法差不多, 都 是在尖括号中间加入数据结构的类型.同理,其他类型的数组变量也能通过 Array 的方式来声明,像前面介绍的整型数组,其实可以使用类型 Array,以此类推,改造之后的各 类型数组变量的声明代码如下所示: var int_array:Array = arrayOf(1, 2, 3) var long_array:Array = arrayOf(1, 2, 3) var float_array:Array = arrayOf(1.0f, 2.0f, 3.0f) var double_array:Array = arrayOf(1.0, 2.0, 3.0) var boolean_array:Array = arrayOf(true, false, true) var char_array:Array = arrayOf('

a'

, '

b'

, '

c'

) 2.2.2 数组元素的操作 现在声明数组和对数组初始化的代码都有了,接下来还需要对数组做进一步的处理,常见的 处理包括获取数组长度、获取指定位置的数组元素等,这些操作在 Kotlin 与Java 之间的区别包括: (1)对于如何获取数组长度,Java 使用.length,而Kotlin 使用.size. (2)对于如何获取指定位置的数组元素,Java 通过方括号加下标来获取,比如 int_array[0] 指的是得到该数组的第一个元素;

Kotlin 也能通过方括号加下标来获取指定元素,不过 Kotlin 还拥 有get 和set 两个方法,通过 get 方法获取元素值,通过 set 方法修改元素值,看起来就像在操作 ArrayList 队列. 下面是 Kotlin 操作字符串数组的示例代码: //声明字符串数组 var string_array:Array = arrayOf( How , Are , You ) btn_string.setOnClickListener { var str:String = var i:Int =

0 while (i 0) { origin_trim = origin_trim.substring(0, origin_trim.indexOf('

.'

)) } 在这些字符串处理方法里面,唯一区别是 split 方法的返回值,在Java 中,split 方法返回的是 String 数组,即String[];

但在 Kotlin 中,split 方法返回的是 String 队列,即List.下面是 Kotlin 使用 split 方法的示例代码: //根据点号将源串分割为字符串队列,并将分割结果显示在界面上 btn_split.setOnClickListener { var strList:List = origin.split( . ) var strResult:String = for (item in strList) { strResult = strResult + item + , } tv_convert.text = strResult } 分割字符串的界面效果如图 2-5 所示,可以看到源字 符串里面的点号都被替换为逗号,字符串末尾也多了一个 逗号. 若想获取字符串某个位置的字符,这个看似简单的需 求,采取 Java 实现时却有点烦琐,因为只能调用 substring 方法去截取指定位置的字符串, 具体的Java代码如下所示: String result = origin.substring(number, number+1);

tv_convert.setText(result);

通过 Kotlin 实现上述需求就简单多了,因为 Kotlin 允许直接通过下标访问字符串指定位置的 字符,下面是访问字符串指定位置的 Kotlin 代码例子: tv_convert.text = origin[number].toString() 同时,Kotlin 也支持字符串变量通过 get 方法获取指定位置上的字符,代码如下: tv_convert.text = origin.get(number).toString() 如此一来,Kotlin 的字符串定位代码不但更加精炼,而且可读性也增强了. 2.3.3 字符串模板及其拼接 Kotlin 对字符串带来的便利并不限于此,举个例子,若Java 把几个变量拼接成字符串,则要 么用加号强行拼接,要么用 String.format 函数进行格式化.可是前者的拼接加号时常会跟数值相加 的加号混淆;

而后者的格式化还得开发者死记硬背,如%d、%f、%s、%c、%b 等格式转换符,实 ........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题