简单了解Java字符串(操作)
程序员文章站
2024-02-22 16:25:10
字符串遍历
string str = "asdfghjkl";
1.
for(int i=0;i
字符串遍历
string str = "asdfghjkl";
1.
for(int i=0;i<str.length();i++){ char ch = str.charat(i); }
2.
char[] c=str.tochararray(); for(char cc:c){ ...//cc 直接用了 }
3.
for(int i=0;i<str.length();i++){ string substr = str.substring(i, i+1) }
类似的,arraylist 三种遍历方法:
arraylist 支持 3 种遍历方式 (01) 第一种,通过迭代器遍历。即通过 iterator 去遍历。 integer value = null; iterator iter = list.iterator(); while (iter.hasnext()) { value = (integer)iter.next(); } (02) 第二种,随机访问,通过索引值去遍历。 由于 arraylist 实现了 randomaccess 接口,它支持通过索引值去随机访问元素。 integer value = null; int size = list.size(); for (int i=0; i<size; i++) { value = (integer)list.get(i); } (03) 第三种,for 循环遍历。如下: integer value = null; for (integer integ:list) { value = integ; }
效率分析:遍历 arraylist 时,使用随机访问 (即,通过索引序号访问) 效率最高,而使用迭代器的效率最低!
类型转换
如何实现 string 与基本数据类型的装换
将 string 转换为基本的数据类型。8 个 wrapper class(integer,double,...)提供了相对应的方法 parsexxx(string str)将字符串转换为基本的数据类型,如下:
string str1 = "123"; string str2 = "12.3"; string str3 = "true"; int a = integer.parseint(str1); //123 double d = double.parsedouble(str2); //12.3 boolean flag = boolean.parseboolean(str3); //true
如何将基本数据类型转换为 string,可以使用 string.valueof()方法进行转换,如下:
int a = 123; double b = 13.05; boolean flag = true; string str1 = string.valueof(a); //123 string str2 = string.valueof(b); //13.05 string str3 = string.valueof(flag); //true
同时还有着更为简单快捷的方式,直接在基本数据类型之后添加 “ ”,如下;
string str1 = a +""; //a string str2 = flag + ""; //true
分割字符串
在 java 里分割字符串是通过正则表达式来分割
string str = "aa-bb-cc-dd"; string[] res = str.split("-"); //aa bb cc dd
取子串
string str = "abcdefg"; str = str.substring(2, 5); //cde
一个问题
在一些敏感信息上, 为什么倾向用 char[], 而不是 string?
当 string 一旦创建, 便不可再修改, 直到 gc 将它回收. 可 gc 的回收时间无法预测. 即使一个对象不存在引用, 也需要在未来的某个时间才会让给出回收. 所以 string 操作敏感信息, 有渗漏的风险. 可 char[] 就不一样了, 我们可以通过程序直接控制其元素, 一般敏感信息不再有用, 直接将数组即可, 因此更倾向使用 char[] 来保存密码等敏感信息
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。