【干货】Java字符串之10大热点问题!

其实作为Java初学者,字符串是一个必须迈过的坎,所以老九君为了大家能够更好的掌握字符串这个知识点,以及深入的了解一些原理,搜罗总结了以下10条Java字符串的热点问题,满满的都是干货!

1、如何比较字符串,应该用”==”还是equals()?

总的来说,”==”是用来比较字符串的引用地址,而equals()才是比较字符串的值。两个值相同的字符串用”==”比较结果有可能是false,而用equals()则一定为true。除非两个字符串是同一个new出来的对象,不然比较字符串值是否相同应该要用equals()。

2、对那些安全敏感的信息,为什么用char[]存储要优于String?

String是不可变的,这就意味着它一旦被创建,就将永久驻留在内存中,直到垃圾回收器将其回收为止。

然而用数组存储方式,你可以明确地改变数组中的元素,因此用数组方式,安全信息将有可能不存在系统内存的任何地方。

3、能否用字符串来声明switch语句?

JAVA 7及以后的版本是支持的。在JDK 7中,允许你使用字符串做switch语句的比较条件。jdk 6以前的版本,不能这样使用:

4、如何将字符串转换成数字int类型?

int n = Integer.parseInt("10");

很简单,但却会经常用到,也很容易被忽略。

5、如何用空格字符来分割字符串?

我们可以很方便地用正则表达式来分割字符串,”\s”表示空格字符,比如” “, “\t”, “\r”, “\n”

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

6、substring()方法究竟是什么?

在jdk 6中,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()方法来实现,StringUtils是Apache公共语言库的其中一个类库成员。

9、如何将字符串转换成日期类型?

你可以按以下方法来做,代码如下:

10、如何统计指定字符在字符串中出现的频率?

同样我们利用了Apache公共语言库中的StringUtils,代码如下:

相信对字符串很有自信的你,看了这几条问题,也会有或多或少的收获吧!如果还想学习更多的干货,可以在下方留言呢,老九君会在后续为大家量身定制出更多实用的干货知识点!!

原文发布于微信公众号 - 老九学堂(xuetang9)

原文发表时间:2016-04-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏软件开发 -- 分享 互助 成长

C++ STL 中erase()的使用需要小心

C++ STL极大的方便了用户编写程序,但是同时一不小心也会犯一些错误,如erase()造成迭代器失效经常会引起错误。 错误示例: std::lis...

265110
来自专栏猿人谷

C++ 虚拟继承

1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继 承自类A,因此在类D...

29080
来自专栏MasiMaro 的技术博文

C/C++中整数与浮点数在内存中的表示方式

在C/C++中数字类型主要有整数与浮点数两种类型,在32位机器中整型占4字节,浮点数分为float,double两种类型,其中float占4字节,而double...

13530
来自专栏赵俊的Java专栏

由一道 Java finally 执行顺序的题引发的思考

23840
来自专栏日常学python

史上最全关于sorted函数的10条总结(文末附送书中奖名单)

sorted 用于对集合进行排序(这里说的集合是对可迭代对象的一个统称,他们可以是列表、字典、set、甚至是字符串),它的功能非常强大,本文将深入浅出地介绍 s...

9640
来自专栏恰童鞋骚年

剑指Offer面试题:30.第一个只出现一次的字符

  最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字...

8620
来自专栏nummy

Iterables vs. Iterables vs. Generators

容器是用来储存元素的一种数据结构,它支持隶属测试,容器将所有数据保存在内存中,在Python中典型的容器有:

7220
来自专栏Java架构师历程

精选30道Java笔试题解答

都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来...

34240
来自专栏小狼的世界

Python3.6学习笔记(三)

面向对象编程 Object Oriented Programming 简称 OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作...

8920
来自专栏大数据和云计算技术

算法基础:优先队列

算法是基础,小蓝同学准备些总结一系列算法分享给大家,这是第四篇《优先队列》,非常赞!希望对大家有帮助,大家会喜欢! 前面系列文章: 归并排序 #算法基础#...

33260

扫码关注云+社区

领取腾讯云代金券