java字符串10_排名前10的Java字符串问题

下面是Java字符串10个经常被问到的问题。

1.怎样比较字符串,使用"=="还是equals()?

简而言之,"=="测试引用是否相同,而equals()测试字符串的值是否相同。除非你想要检查两个字符串是否是同一个对象,否则你应该使用equals()。

2.对于安全敏感的信息,为什么char[]要优于String?

字符串是不可变的,这意味着一旦它们被创建,它们将保持不变,知道垃圾回收器将其回收。使用数组,你可以明确地改变它的元素。用这种方法,安全敏感信息(比如密码)将不会在系统的任何地方出现。

3.我们可以在switch语句中使用字符串吗

对于JDK7是这样的,从JDK7开始,我们可以使用字符串作为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.怎样将字符串用空格符分开

我们可以简单地使用正则表达式,"\s"是指" ","\t","\r","\n"这样的空白字符。

String[] strArray = aString.split("\\s+");

6.substring()方法到底做了什么

在JDK 6中,一系列字符代表已存在的字符串,substring()方法为这些字符提供一个窗口,但并不创建一个新的字符串,为了创建一个新的由新的字符代表的字符串,你可以加上一个空的字符串,就像这样:

str.substring(m, n) + ""

这样就会创建一个新的由字符数组代表的字符串,上面的方法有时候可以让你的程序运行速度更快,因为垃圾回收器可以回收不被使用的大字符串,并且只保留其子字符串。

在JDK 7中,substring()创建一个新的字符数组,而不是使用现有的这个。

7.String  StringBuilder  StringBuffer

String与StringBuilder比较:StringBuilder是可变的,这意味着在创建之后你可以修改它。

StringBuilder与StringBuffer比较:StringBuffer是同步的,这意味着它是线程安全的,但是比StringBuider要慢。

8.怎样重复一个字符串

在Python中我们可以乘上一个数字来重复字符串,在Java中我们可以使用来自Apache的公共语言库的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.如何计算一个字母在字符串中出现的次数

使用来自apache公共语言库的StringUtils。

int n = StringUtils.countMatches("11112222", "1");

System.out.println(n);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值