当前位置: 首页 > 科技观察

Java初学者必知Java字符串

时间:2023-03-12 21:53:36 科技观察

下面我总结了Java开发者经常问到的关于Java字符串的10个问题。如果你也是Java初学者,仔细看看:1.如何比较字符串,应该用“==”还是equals()?一般来说,“=”是用来比较字符串的引用地址,equals()是用来比较字符串的值。两个相同值的字符串用“==”比较时可能为假,但用equals()时一定为真。除非两个字符串是同一个新对象,否则应该使用equals()来比较字符串值是否相同。2、对于那些安全敏感的信息,为什么char[]比String存储的好?String是不可变的,也就是说它一旦被创建,就会一直驻留在内存中,直到被垃圾回收器回收为止。但是,对于数组存储,您可以显式更改数组中的元素,因此对于数组存储,安全信息可能不会存储在系统内存中的任何位置。3、可以用字符串来声明switch语句吗?支持JAVA7及以上版本。在JDK7中,你可以使用字符串作为switch语句的比较条件。jdk6之前的版本不能这样使用://java7only!switch(str.toLowerCase()){case"a":value=1;break;case"b":value=2;break;}4.如何setConvertingastringtoanumericinttype?intn=Integer.parseInt("10");很简单,但是经常用到,容易被忽视。5、如何使用空格字符分割字符串?我们可以很方便地使用正则表达式来分割字符串,“s”表示空格字符,例如“”、“t”、“r”、“n”String[]strArray=aString.split("s+");#p#6.substring()方法到底是什么?在jdk6中,substring()方法提供了截取原始字符串中字符的窗口,但它并没有创建一个新的String实例。如果要创建一个新的字符数组,可以在substring()后添加一个空字符,像这样:str.substring(m,n)+""这样会创建一个新的String实例,上面的方法有的时候可以使您的程序运行得更快,因为垃圾收集器可以回收无用的大字符串并保留其子字符串。7.String、StringBuilder和StringBuffer哪个更好?String和StringBuilder:StringBuilder是可变的,这意味着您可以随时更改使用StringBuilder创建的字符串。StringBuilder和StringBuffer:StringBuffer是同步的,它是线程安全的(thread-safe),但是效率比StringBuilder差很多。8、如何重复输出一个字符串?在Python中,我们只需要将字符串乘以一个数,就可以重复输出字符串。而在Java中,我们可以使用StringUtils的repeat()方法,它是Apache公共语言库的类库成员之一。Stringstr="abcd";Stringrepeated=StringUtils.repeat(str,3);//abcdabcdabcd9.如何将字符串转换为日期类型?可以通过下面的方式实现,代码如下:Stringstr="Sep17,2013";Datedate=newSimpleDateFormat("MMMMd,yy",Locale.ENGLISH).parse(str);System.out.println(date);//TueSep1700:00:00EDT201310,如何统计指定字符在字符串中出现的频率同样我们使用Apache公共语言库中的StringUtils,代码如下:intn=StringUtils.countMatches("11112222",“1”);System.out.println(n);以上10个关于Java字符串的问题,你遇到了多少?除此之外,你认为还有哪些问题会让Java开发者感到困惑,欢迎在评论中告诉我们,让我们一起探讨。