简单了解Java字符串(操作)

 更新时间:2019年05月29日 09:46:17   作者:SecondLife  
这篇文章主要介绍了Java字符串(操作),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,下面小编和大家一起来学习吧

字符串遍历

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[] 来保存密码等敏感信息

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 第三方网站微信登录java代码实现

    第三方网站微信登录java代码实现

    这篇文章主要为大家详细介绍了第三方网站微信登录的java代码实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Java并发系列之ConcurrentHashMap源码分析

    Java并发系列之ConcurrentHashMap源码分析

    这篇文章主要为大家详细分析了Java并发系列之ConcurrentHashMap源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • 使用java API实现zip递归压缩和解压文件夹

    使用java API实现zip递归压缩和解压文件夹

    这篇文章主要介绍了使用java API实现zip递归压缩文件夹及解压,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • springBoot项目打包idea的多种方法

    springBoot项目打包idea的多种方法

    这篇文章主要介绍了springBoot项目打包idea的多种方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • SpringBoot搭配AOP实现自定义注解

    SpringBoot搭配AOP实现自定义注解

    这篇文章主要为大家详细介绍了SpringBoot如何搭配AOP实现自定义注解,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-12-12
  • Java 数据结构算法Collection接口迭代器示例详解

    Java 数据结构算法Collection接口迭代器示例详解

    这篇文章主要为大家介绍了Java 数据结构算法Collection接口迭代器示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • JDK动态代理过程原理及手写实现详解

    JDK动态代理过程原理及手写实现详解

    这篇文章主要为大家介绍了JDK动态代理过程原理及手写实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Springdoc替换swagger的实现步骤分解

    Springdoc替换swagger的实现步骤分解

    最近在spring看到的,spring要对api文档动手了,有些人说swagger不好用,其实也没那么不好用,有人说代码还是有点侵入性,这倒是真的,我刚试了springdoc可以说还是有侵入性但是也可以没有侵入性,这就看你对文档有什么要求了
    2023-02-02
  • Java基础入门篇之逻辑控制练习题与猜数字游戏

    Java基础入门篇之逻辑控制练习题与猜数字游戏

    猜数字游戏是一款经典的游戏,该游戏说简单也很简单,说不简单确实也很难,这篇文章主要给大家介绍了关于Java基础入门篇之逻辑控制练习题与猜数字游戏的相关资料,需要的朋友可以参考下
    2023-06-06
  • MyBatis中防止SQL注入讲解

    MyBatis中防止SQL注入讲解

    这篇文章主要介绍了MyBatis中防止SQL注入,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-12-12

最新评论