1.如何比较字符串
简单来说,== 测试引用是否相等,equals()来测试值是否相等。除非你像检查两个字符串是不是同一个对象,你常常应该用的是equals().
2.用什么保存敏感信息
char[]
比String
更适合保存敏感信息,是因为字符串是不可变的,这意味着一旦它们被创建,它们将保持不变,直到垃圾收集器启动。
使用数组,可以显示更改元素。这样,安全敏感信息(例如密码)将不会出现在系统的任何地方。
3.我们可以在switch语句中用String吗?
从JDK 7版本以后,我们可以使用string作为switch的条件。
// java 7 only!
switch (str.toLowerCase()) {
case "a":
value = 1;
break;
case "b":
value = 2;
break;
}
4. 如何将String转成int
int n = Integer.parseInt("10");
5. 如何用空格来分割字符串
String [] strArray = aString.split("\\s+");
6.subString()方法实际做了什么?
在JDK 6中,substring()方法给出一个表示现有字符串的字符数组的窗口,但不要创建一个新的字符串。 要创建一个由新char数组表示的新字符串,可以添加如下所示的空字符串:
str.substring(m,n)+""
这将创建一个新的字符数组,代表新的字符串。 上述方法有时可以使代码更快,因为垃圾收集器可以收集未使用的大字符串并仅保留子字符串。
在Oracle JDK 7中,substring()创建一个新的char数组,而不是使用现有的char数组。 查看用于显示JDK 6和JDK 7之间的substring()差异的图表。
7. String vs StringBuilder vs StringBuffer
String vs StringBuilder: StringBuilder是可变的,这意味着你可以在创建后修改它。
StringBuilder vs StringBuffer: StringBuffer是同步的,这意味着它是线程安全的,但比StringBuilder慢。
8.如何重复字符串
在Python中,我们可以乘以一个数字来重复一个字符串。 在Java中,我们可以使用Apache Commons Lang包中的StringUtils的repeat()方法。
9 如何将String转成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. 如何计算字符串中字符出现的次数?
Use StringUtils from apache commons lang.
int n = StringUtils.countMatches("11112222", "1");
System.out.println(n);