博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈Java字符串(操作)
阅读量:6943 次
发布时间:2019-06-27

本文共 1608 字,大约阅读时间需要 5 分钟。

虽是读书笔记,但是如转载请注明出处

.. 拒绝伸手复制党


字符串遍历

String str = "asdfghjkl";

1.

for(int i=0;i

2.

char[] c=str.toCharArray(); for(char cc:c){   ...//cc 直接用了}

3.

for(int i=0;i

类似的,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

效率分析:遍历 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); //123double d = Double.parseDouble(str2);    //12.3boolean flag = Boolean.parseBoolean(str3);  //true

如何将基本数据类型转换为 String,可以使用 String.valueOf()方法进行转换,如下:

int a = 123;double b = 13.05;boolean flag = true;String str1 = String.valueOf(a);    //123String str2 = String.valueOf(b);    //13.05String 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[] 来保存密码等敏感信息

想更一进步的支持我,请扫描下方的二维码,你懂的~

图片描述

你可能感兴趣的文章
VMware网络连接失败
查看>>
师兄的悔恨史
查看>>
Ubuntu14.04下SP_Flash_Tool_exe_Linux无法烧录
查看>>
hdu 5437 Alisha’s Party 优先队列
查看>>
【PHP】PHP获得第一章
查看>>
nslookup
查看>>
java05
查看>>
Android UI ActionBar功能-在 Action Bar 上添加按钮
查看>>
每天一个linux命令(10):cat 命令
查看>>
android ScrollView中嵌套listview listview可点击处理,可展开
查看>>
感谢dudu和他的博客园团队
查看>>
一个由proguard与fastJson引起的血案(转)
查看>>
clearing & settlement
查看>>
Lingo 做线性规划 - DEA
查看>>
Axure 全局辅助线(转)
查看>>
Delphi 7下使用VT实现树型列表结合控件
查看>>
【LINUX】——如何配置宿主机和虚拟机IP在同一网段
查看>>
工作介绍xml书包文件
查看>>
POJ 3450 Corporate Identity KMP解决问题的方法
查看>>
js原生设计模式——9外观模式封装2(小型代码库YJ)
查看>>