您的位置:首页 > 编程语言 > Java开发

Java字符串 10大最受关注问题解析

2016-08-24 00:38 246 查看
Java中字符串的知识精细而繁杂,所以初学者想要更深入的掌握这些知识点,除了理解概念外,有对比的进行学习也是一种有效的学习方法,不但能掌握字符串规律,还能对不同字符串属性进行区分,下面就来给大家以对比方式来回答最受关注的10大字符串问题。
1  如果对字符串进行比较,使用“= =”还是equals()?
一般情况下我们用”==”来比较字符串所引用的地址,而且equals()才是用来比较字符串的值。两个值相同的字符串用”==”而比较的结果可能会是false,而equals()的结果则一定是true。除非这两个字符串是用同一个new出来的对象,除此之外比较字符串值是否相同都要用equals() 2 针对安全敏感的信息,为什么要char[]存储要优于String?
在Java中Striing是不可变量,意味着它一旦被创建就会永久驻留在内存中,一直到垃圾回收器将它收回为之。如果我们用数组的存储方式,就可以明确的改变数组中的元素,所以说用数组的方式,这些安全的信息就可能不会存在于内存的任何地方。
3    switch语句可以用字符串来声明吗?

JAVA 7以及之后后的版本是可以支持的。在JDK 7中,允许我们使用字符串来做switch语句的比较条件。而Jdk 6之前的版本,是不能这样使用的://
java 7 only!switch (str.toLowerCase()) {     
case "a":           value = 1;          
break;      case "b":          
value = 2;           break;} 4
怎么将符串转化为数字int类型?

这个很常用到,也很简单,但却最容易被忽略int n = Integer.parseInt("10");
5  怎么使用空格字符将字符串分割?正则表达式可以很方便的分割字符串”\s”表示的空格字符 比如”
“, “\t”, “\r”, “\n”String[] strArray = aString.split("\\s+"); 6
  substring()方法究竟是什么?

在jdk 6中,substring()方法并没有创建出一个新的Stirng实例,它只是在原来的字符串中提供了一个截取字符的窗口。如果我们想创建新的数组,可以通过在substring()后加一个空的字符,如下:str.substring(m,
n) + ""这样就可以创建一个新的Sting实例,而且以上方法还可以加快程序运行,因为垃圾回收其可将那些没有用的字符会收走,同时还能保留其字符串。

7  String、StringBuilder和StringBuffer哪个更优?
String和StringBuilder:StringBuilder是可变的,意思是我们用StringBuilder所创建的字符串可以随时进行更改。StringBuilder和StringBuffer:StringBuffer是同步的,它是线程安全(thread-safe)的,但效率要比StringBuilder差得多。
8  怎么样重复输出字符串?

在Python中的操作很简单,通过将字符串乘上一个数字就可以重复输出该字符串。而在Java中,我们可以通过 StringUtils的repeat()方法来实现,StringUtils是Apache是一个类库成员在Apache公共语言库中能够找到。String
str = "abcd";String repeated = StringUtils.repeat(str,3);//abcdabcdabcd9
  怎样将字符串转换成日期类型?
我们可以通过以下方法来操作,代码如下:
String str = "Sep 17, 2016";Date
date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);System.out.println(date);//Tue
Sep 17 00:00:00 EDT 2016
  10  怎样统计指定字符在字符串中所出现的频率?

我们可以利用Apache公共语言库的StringUtils,代码如下:int n = StringUtils.countMatches("11112222",
"1");System.out.println(n);

对于学习有困难不知道如何提升自己可以加扣:578024144  进行交流得到帮助,获取学习资料
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息