关于Java字符串(String)10个最常见问题
来源:互联网 发布:服务端数据为空淘宝 编辑:程序博客网 时间:2024/05/17 12:47
Java语言中,String一直很基础,但很多人都很多概念还是很模糊。这里我们选取了网络上最常见的10个问题,希望通过
1. 如何对字符串进行比较?用“==” 还是equals()
?
简单来说,如果引用是否相同那么使用==
, 判断值是否相等则用equals()
。除非你想判断2个字符串是否是同一对象,否则你都应该使用equals()
。
2. 为什么在安全敏感信息场合应该用char[]而不是string?
String具有不可变的特性,当字符串一旦被创建,那么知道垃圾收集器处理之前他们都是不可变的。如果使用数组,那么你可以明确地改变其内部单元数据。因此,安全敏感的信息例如密码不应该在系统中任何时候都存在。
3. 我们可以在switch语句中使用string吗?
是的,在Java 7中可以!JDK7中,我们可以在switch
中使用string。但是之前的Java版本是不可以的。
// java 7 only!switch(str.toLowerCase()){ case "a": value = 1; break; case "b": value = 2 ; break; }
4. 如何将字符转成Int类型?
int n = Integer.parseInt("10");
就是这样简单!
5. 如何用白色空格字符分离一个字符串?
可以使用正则表达式分离字符串。”“表示白色空格字符比如” “, “”。
String [] strArray = aString.split("\\s+");
6. substring()
这个方法起什么作用?
在JDK6中,substring()
方法并不会创建一个新的字符数组,而是给现存的字符串一个窗口用于表示当前字符串。如果想用一个新的字符数组来表示新的字符串,你可以加一个空支付串来实现,如下所示:
str.substring(m, n) + ""
使用上述方法,会创建一个新的字符数组来表示新的字符串。有时候可以让你的代码更快,因为垃圾收集器会收集一些没有使用的大字符串但子字符串确实保留的。
JDK7中,substring()
会创建一个新的字符数组,而不是使用现在的这个。
7. String vs StringBuilder vs StringBuffer
String vs StringBuilder: StringBuilder是可变的,你可以在创建之后继续修改它。
StringBuilder vs StringBuffer: StringBuffer是同步的,线程安全但是也因为如此,它比StringBuilder要慢。
8. 如何重复一个字符串?
Python语言,要重复一个字符串只需要乘以一个数字即可。Java语言中,我们可以使用StringUtils中的repeat()
方法。
String str = "abcd";String repeated = StringUtils.repeat(str,3);//abcdabcdabcd
9. 如何将字符串转换成日期?
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. 如何计算一个字符串中某个字符的出现次数?
使用StringUtils中方法:
int n = StringUtils.countMatches("11112222", "1");System.out.println(n);
以上!
- 关于Java字符串(String)10个最常见问题
- 关于Java字符串(String)10个最常见问题
- 关于Java String的10个常见问题
- Java中String类(字符串操作)的10个常见问题和解决方法
- 10个有关Java异常的最常见问题
- JAVA关于字符串String
- 关于String的常见问题
- 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图像灰度化的实现过程解析
- 可信前端之路-代码保护
- 破坏掉数据文件后仍然可以查询,且表空间无法删除
- Activity启动流程分析(基于android 5.1)
- C#/mono开发Android应用程序入门(二)-第一个应用程序(Hello World)(转)
- 关于Java字符串(String)10个最常见问题
- How to Integrate angular 2 with php and mysql db
- Ubuntu下定时任务的实现
- 渗透信息收集
- How to list the latest installed RPM package name (文档 ID 1553104.1)
- 为什么图片反复压缩后会普遍会变绿而不是其他颜色?
- bzoj2437 [Noi2011]兔兔与蛋蛋
- 广告特征提取
- buffer.clear() buffer .flip() 区别