以下是前10个经常被问到的Java字符串的问题。
1.如何比较字符串?使用“==”或使用equals()方法?
简言之,“==”是测试引用对象是否一样,而equals()是测试值是否相等。除非你要检查两个字符串引用的是不是同一个对象,否则你应该一般是使用equals()方法。
如果你参阅string interning. 这将帮助你更好地理解。
2.为什么对于安全敏感信息会更倾向用char[]而不是String?
字符串是不可变的 ,这意味着字符串对象一旦被创建,他们会一直不会被改变直到垃圾收集器回收。但如果用一个数组,你可以明确地改变它的元素。这样的话,安全敏感信息(如密码)将不会存在于系统中的任何地方。
3.我们可以在swith语句中可以使用字符串吗?
JDK 7是完全可以用字符串作为switch语句中的条件版本,但JDK 6之前,我们是不可以用字符串来作为switch语句中的条件的。
1.如何比较字符串?使用“==”或使用equals()方法?
简言之,“==”是测试引用对象是否一样,而equals()是测试值是否相等。除非你要检查两个字符串引用的是不是同一个对象,否则你应该一般是使用equals()方法。
如果你参阅string interning. 这将帮助你更好地理解。
2.为什么对于安全敏感信息会更倾向用char[]而不是String?
字符串是不可变的 ,这意味着字符串对象一旦被创建,他们会一直不会被改变直到垃圾收集器回收。但如果用一个数组,你可以明确地改变它的元素。这样的话,安全敏感信息(如密码)将不会存在于系统中的任何地方。
3.我们可以在swith语句中可以使用字符串吗?
JDK 7是完全可以用字符串作为switch语句中的条件版本,但JDK 6之前,我们是不可以用字符串来作为switch语句中的条件的。
// java 7 only!
switch (str.toLowerCase()) {
case "a":
value = 1;
break;
case "b":
value = 2;
break;
}
4.如何将字符串转换为int?
5.如何用空白字符分割字符串?
int n = int n = Integer.parseInt("10");
很简单,但如此频繁使用甚至有时会被忽略。
5.如何用空白字符分割字符串?
我们可以使用正则表达式来轻而易举的拆分。 “\ s”代表空格字符,如“ ”,“\ t”,"\ r”,"\ n”。
6 .字符串中的substring()方法是做什么的呢?
7.String,StringBuilder,StringBuffer比较
String与StringBuilder:StringBuilder是可变的,这意味着您可以在创建后修改它。
StringBuilder与StringBuffer:StringBuffer是同步的,这意味着它是线程安全的,但比StringBuilder的速度较慢。
8.如何重复一个字符串?
在Python中,我们可以只乘一个数字就可以重复的字符串。在Java中,我们可以使用包org.apache.commons.lang下的StringUtils类中的repeat()方法。
9.如何将字符串转换成日期?
10。如何计算一个字符串中一个字符的出现次数?
String[] strArray = aString.split("\\s+");
6 .字符串中的substring()方法是做什么的呢?
在JDK 6中,可以利用substring()方法返回一个字符数组来表示现有的字符串,但不会创建新的字符数组。要创建一个新的字符数组来表示一个新的字符串,你可以做添加类似下面的一个空字符串:
str.substring(m, n) + ""
这将创建一个新的字符数组,表示新的字符串。上面的方法有时可以使你的代码更快,因为垃圾收集器可以收集未使用的大字符串并且保留子字符串。
在Oracle的JDK 7,子()创建一个新的字符数组,而不是使用现有的。可以查看 JDK 6和JDK 7substring() 的区别示意图 。
str.substring(m, n) + ""
这将创建一个新的字符数组,表示新的字符串。上面的方法有时可以使你的代码更快,因为垃圾收集器可以收集未使用的大字符串并且保留子字符串。
在Oracle的JDK 7,子()创建一个新的字符数组,而不是使用现有的。可以查看 JDK 6和JDK 7substring() 的区别示意图 。
7.String,StringBuilder,StringBuffer比较
String与StringBuilder:StringBuilder是可变的,这意味着您可以在创建后修改它。
StringBuilder与StringBuffer:StringBuffer是同步的,这意味着它是线程安全的,但比StringBuilder的速度较慢。
8.如何重复一个字符串?
在Python中,我们可以只乘一个数字就可以重复的字符串。在Java中,我们可以使用包org.apache.commons.lang下的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。如何计算一个字符串中一个字符的出现次数?
使用包org.apache.commons.lang下的StringUtils类
最后一个
int n = StringUtils.countMatches("11112222", "1");
System.out.println(n);
最后一个