[译]关于Java 字符串最常被问到的十个问题
(说明,该文章翻译自Top 10 questions of Java Strings)
下面是关于Java字符串最常被问到的十个问题
1.怎么去比较字符串?使用==还是使用equals()?
简单来说,"=="用来比较引用是否相等而"equals()用来比较值是否相等",除非你是要检查两个字符串的是否是相同的对象,你应该使用equals()。
如果你了解字符串截取原理的话那么就更好了。
2.为什么对于安全敏感的信息字符数组比字符串更受青睐
字符串是不可变的,这就意味着一旦他们被创建,他们就不会保持不变除非被垃圾回收器回收掉。可是对于一个字符数组你可以显示的改变他的元素值,而安全敏感的这些信息不回总是存在系统中。
3.我们可以在多分支选择语句中使用字符串吗
版本7是OK的,从JDK7开始,我们可以使用字符串作为多分支选择条件,在版本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.subsring()方法实际上做了什么事情
在JDK6中,substring()方法针对已经存在的字符串给但是不会创建一个新的。为了创建一个用新的数组表示的新的字符串,你可以像下面这样添加一个空的字符串:
str.substring(m, n) + ""
这样讲创建一个新的字符数组用来表示新的字符串,上面的代码有时候可以让你的代码变得快速,因为垃圾回收器可以收集不再使用的字符串而只保留子串。
在Oracle JDK7中,substring()创建一个新的字符数组而不是使用原来已经存在的。请看substring() difference between JDK 6 and JDK 7.。
7. String vs StringBuilder vs StringBuffer
String vs StringBuilder:StringBuilder 是可变的,这意味找你可以修改它在创建完以后。
StringBuilder vs StringBuffer:StringBuffer 是线程同步的,这意味着它是线程安全的但是比StringBuilder慢一些。
8.怎么去复制一个字符串?
在Python中,我们可以使用乘以一个数组去复制字符串。在Java中门可以使用 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.怎么统计一个字符在字符串中出现的次数?
使用 Apache Commons Lang包中的StringUtils类
int n = StringUtils.countMatches("11112222", "1");
System.out.println(n);
[译]关于Java 字符串最常被问到的十个问题的更多相关文章
- 常被问到的十个 Java 面试题
在这篇文章中,我试图收录最有趣和最常见的问题.此外,我将为您提供正确的答案. 接下来,就让我们来看看这些问题. 1. 以满分十分来评估自己——你有多擅长 Java? 如果你并不完全确信你自己或是你对 ...
- 各大互联网公司java开发面试常问问题
本人是做java开发的,这是我参加58,搜狐,搜狗,新浪微博,百度,腾讯文学,网易以及其他一些小的创业型公司的面试常被问的问题,当然有重复,弄清楚这些,相信面试会轻松许多. 1. junit用法,be ...
- 【搞定 Java 并发面试】面试最常问的 Java 并发进阶常见面试题总结!
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.觉得内容不错 ...
- 【搞定 Java 并发面试】面试最常问的 Java 并发基础常见面试题总结!
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.欢迎 Sta ...
- 【译】Java中的字符串字面量
原文地址:https://javaranch.com/journal/200409/ScjpTipLine-StringsLiterally.html 作者:Corey McGlone 让我们由一个简 ...
- Java程序员常犯的10个错误
本文总结了Java程序员常犯的10个错误. #1. 把Array转化成ArrayList 把Array转化成ArrayList,程序员经常用以下方法: List<String> lis ...
- 【JAVA零基础入门系列】Day6 Java字符串
字符串,是我们最常用的类型,每个用双引号来表示的串都是一个字符串.Java中的字符串是一个预定义的类,跟C++ 一样叫String,而不是Char数组.至于什么叫做类,暂时不做过多介绍,在之后的篇章中 ...
- JAVA程序员面试30问(附带答案)
第一,谈谈final, finally, finalize的区别. 最常被问到.final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能 ...
- Java字符串常量池是什么?为什么要有这种常量池?
简单介绍 Java中的字符串常量池(String Pool)是存储在Java堆内存中的字符串池.我们知道String是java中比较特殊的类,我们可以使用new运算符创建String对象,也可以用双引 ...
随机推荐
- [WebGL入门]四,渲染准备
注意:文章翻译http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:].另外.鄙人webgl研究还不够深入,一些专业词语,假设翻译有误,欢迎大家 ...
- K60 启动过程分析
很高兴老师借给我一K60的开发板,趁着暑假好好鼓捣鼓捣! 有了上图的过程分析我想心里大概有个低了吧! 以下看代码: /* CodeWarrior ARM Runtime Support Library ...
- C++ 静态static 变量在 cocos2d-x 里面使用误区
void Cms::showMonster(CCArray* monsterArray,int type) { <span style="color:#ff0000;"> ...
- JAVA —— console输入输出
import java.io.*; public class ConsoleIOTest { public static void main(String[] args) { BufferedRead ...
- crm创建报告补充导航
报告导航实现动态交互体验报告. 通过使用各种类型的操作的,报告允许用户导航到特定的报告.Microsoft Dynamics CRM 记录或其它网站 动态钻取到 Microsoft Dynamics ...
- nodejs使用connect-mongodb报错(Please ensure that you set the default write concern)
原本是使用connect-mongo的,可能是express版本号的升级报错了.改用connect-mongodb.可是使用后出现了例如以下的警告: G:\nodejs\moviesite>gr ...
- Qt Quick 布局演示
于 Qt Widgets 于,我们经常使用许多布局管理器来管理界面 widgets . 于 Qt Quick 实际上,有两个相关的管理和布局库,所谓集 Item Positioner ,所谓集 Ite ...
- MySQL Scale Out
原文:MySQL Scale Out 简介 MySQL复制中较常见的复制架构有“一主一从”.“一主多从”.“双主”.“多级复制”和“多主环形机构”等,见下图: 最常用,也最灵活的就要数“一主多从”复制 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架 ...