Java中关于String类型的10个问题
来源:互联网 发布:xp系统显示网络有重名 编辑:程序博客网 时间:2024/06/15 11:08
1.如何比较两个字符串?用“=”还是equals
简单来说,“==”是用来检测俩引用是不是指向内存中的同一个对象,而equals()方法则检测的是两个对象的值是否相等。只要你想检测俩字符串是不是相等的,你就必须得用equals()方法。
如果你知道“字符串保留(string intern)”的概念那就更好了。
2.为什么安全敏感的字符串信息用char[]会比String对象更好?
String对象是不可变的就意味着直到垃圾回收器过来清扫之前它们都不会发生变化的。用数组的话,就可以很明确的修改它任何位置的字符元素。这样的话,如密码等安全敏感的信息就不会出现在系统的任何地方。
3.字符串对象能否用在switch表达式中?
从JDK7开始的话,我们就可以在switch条件表达式中使用字符串了,也就是说7之前的版本是不可以的。
// java 7 only!switch (str.toLowerCase()) { case "a": value = 1; break; case "b": value = 2; break;}
4.如何将字符串转换为整型数值?
int n = Integer.parseInt("10");
如此简单,经常使用有偶尔也会被遗忘。
5.如何用空格去分隔字符串?
我们可以很便捷的使用正则表达式来进行分隔。“\s”就表示空格,还有如””,”\t”,”\r”,”\n”.
String[] strArray = aString.split("\\s+");
6.substring()方法具体是都干了些啥?
在JDK6中,这个方法只会在标识现有字符串的字符数组上 给一个窗口来表示结果字符串,但是不会创建一个新的字符串对象。如果需要创建个新字符串对象,可以这样在结果后面+一个空的字符串:
str.substring(m, n) + ""
这么写的话就会创建一个新的字符数组来表示结果字符串。同时,这么写也有一定的几率让你的代码跑的更快,因为垃圾回收器会吧没有在使用的大字符串回收而留下子字符串。
Oracle JDK7中的substring()方法会创建一个新的字符数组,而不用之前存在的。
7.String&StringBuilder&StringBuffer
String vs StringBuilder: StringBuilder是可变的,这就意味你在创建对象之后还可以去修改它的值。StringBuilder vs StringBuffer: StringBuffer是同步的,意味着它是线程安全的,但是就会比StringBuilder慢些。
8.如何快速重复构造一段字符串?
在Python编程中,只需要用字符串去乘以一个数字就可以 搞定了,那在Java编程中,我们可以使用来自Apache Commons Lang包中的StringUtils类的repeat()方法。
String str = "abcd";String repeated = StringUtils.repeat(str,3);//abcdabcdabcd
9.如何将时间格式的字符串转换成date对象?
String str = "Sep 17, 2013";Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);System.out.println(date);//Tue Sep 17 00:00:00 EDT 2013
10.如何计数一个字符在某个字符串中出现的次数?
使用Apache Commons Lang包中的 StringUtils类就可以完成这个工作。
int n = StringUtils.countMatches("11112222", "1");System.out.printl``` n(n);
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java中关于String类型的10个问题
- Java 中关于 String 类型的 10 个问题
- Java 中关于 String 类型的 10 个问题
- PS的标题栏以选项卡方式打开名字太长,导致切换标题的时候不方便,如何缩短标题栏?
- 轮播效果
- 学习python的第四十三天-第六章 字符串
- 快速选择文件Beyond Compare如何做到
- 搭建Hbase+openTSDB+Grafana测试环境
- Java中关于String类型的10个问题
- Spring3核心技术之AOP配置
- Android开发-自定义View-AndroidStudio(十二)仿ViewPager(2)
- 电脑连接电视以及电视盒子
- Codoforces 29E
- 【OpenCV学习笔记 018】SIFT特征提取分析和DoG角点检测
- hibernate一级缓存session
- sqlSessionFactory无法注入,报Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Realm之一步上位(基于本地Realm数据库的Android图书馆管理系统)