java字符串10_十个最常见的Java字符串问题
1.怎样比较字符串?用”==”还是用equals()?
简单地说,”==”测试两个字符串的引用是否相同,equals()测试两个字符串的值是否相同。除非你希望检查两个字符串是否是同一个对象,否则最好用equals()。
如果你知道字符串驻留机制会更好。
2.为什么对于安全性敏感的信息char[]要优于String?
字符串是不变的,这也就意味着字符串一旦被创建,它们将一直保持在那直到被垃圾回收器清理为止。而对于一个数组,你可以明确的修改它的元素。这样一来,安全性敏感信息(比如密码)将不会出现在系统的任何其它地方。
3.我们能不能在switch语句中使用String?
对于Java7答案是肯定的。从JDK7开始,我们可以使用String作为switch语句的条件。在JDK6之前,我们不能使用String作为switch语句的条件。
// java 7 only!
switch (str.toLowerCase()) {
case "a":
value = 1;
break;
case "b":
value = 2;
break;
}
4.怎样把字符串转换为整数?
int n = Integer.parseInt("10");
很简单,使用太过频繁以致有时候会被忽略。
5.怎样分解一个有空白字符的字符串?
我们可以简单的用正则表达式来做分解。”\s”代表空白字符,例如” “,”\t”,”\r”,”\n”。
String[] strArray = aString.split("\\s+");
6.substring()方法真正做了什么?
在JDK6中,substring()方法提供了一个表示已有字符串的字符数组的窗口,但并没有创建一个新的字符串。要创建一个由新的字符数组表示的新字符串,可以像下面一样添加一个空串:
str.substring(m, n) + ""
这样就创建一个表示新字符串的全新的字符数组。上面的方法有时候会使代码更快,因为垃圾回收器会回收掉大的不用的字符串,只保留一个子串。
在Oracle JDK 7中,substring()创建一个新的字符数组,不用已有的数组。The substring() Method in JDK 6 and JDK 7中的图表说明了JDK 6和JDK 7的substring()之间的差异。
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字符串10_十个最常见的Java字符串问题相关推荐
- java字符串10_排名前10的Java字符串问题
下面是Java字符串10个经常被问到的问题. 1.怎样比较字符串,使用"=="还是equals()? 简而言之,"=="测试引用是否相同,而equals()测试 ...
- Java字符串中最长回文子字符串
Longest palindrome substring in a string is a very common java interview question. To find out the l ...
- 常见的java异常_浅谈十个常见的Java异常出现原因
异常是 Java 程序中经常遇到的问题,我想每一个 Java 程序员都讨厌异常,一 个异常就是一个 BUG,就要花很多时间来定位异常问题. 1.NullPointerException 空指针异常,操 ...
- java中String类是什么_Java中字符串的学习(一)String类的概述及常见方法使用
转载请注明出处http://www.cnblogs.com/devtrees/p/4347079.html (拓展:Api:编程语言对外给我们提供的应用程序接口.) 一.概述: 我们平时上网发帖,帖子 ...
- java 字符串掐头去尾_java中常见的类
简介 类层次结构最顶层的基类,所有类都直接或间接继承自Object类,所以,所有的类都是以恶个Object(对象) 构造方法 Object: 构造一个对象,所有子类初始化时都会优先调用该方法 常用的成 ...
- Java中定义字符串的两种常见方式、使用==和equals()比较字符串
在讲使用==和equals()比较字符串之前,我们首先要讲定义字符串的两种常见方式,一种是定义一个常量,即直接定义字符串,一种是通过new关键字定义一个变量,即使用String类定义字符串,如下图: ...
- 在java读字符串入文件_如何在java中将文件读入字符串?
我已经将文件读入String. 该文件包含各种名称,每行一个名称. 现在的问题是我想在String数组中使用这些名称. 为此我写了以下代码: String [] names = fileString. ...
- 常见的 Java 错误及避免方法
在开发Java软件时可能会遇到许多类型的错误,但大多数是可以避免的.为此我们罗列了最常见的Java编码错误,其中包含代码示例和教程,以帮助大家解决常见的编码问题. 编译器错误 当Java软件代码通过编 ...
- sonar java_修复Sonar中常见的Java安全代码冲突
sonar java 本文旨在向您展示如何快速修复最常见的Java安全代码冲突. 它假定您熟悉代码规则和违规的概念以及Sonar如何对其进行报告. 但是,如果您以前从未听过这些术语,则可以阅读Sona ...
最新文章
- android ffmpeg 编码h264,Mac系统下ffmpeg+h264+flv编码的android录制屏幕实现2
- 青少年电子信息智能创新大赛 赛项说明(Scratch编程创新挑战赛)
- MySQL数据库如何杀死会话_如何彻底杀掉不良用户会话
- python零碎笔记整理1
- linux手动安装unzip_centos7离线安装unzip和zip
- Android thumbnail 图片的获得及与原始图片的映射
- python怎么打断点_Pycharm如何打断点的方法步骤
- c语言最短线性路径算法,巧用Excel规划求解最短路径
- Spring框架学习之路,完整版 持续更新,有代码仓库对比
- 电感5大特性参数,你知道几个?
- u盘启动进入grub linux,利用grub4dos的u盘启动盘拯救linux系统
- 《恒盛策略》外资巨头突然出手!又有炒股软件罢工
- 深度解析智能运维场景下“港口行业”解决方案
- 二人成团,阿里云服务器拼团活动开启
- OpenGL 游戏开发: 熟悉练习【《OpenGL超级宝典》第二章】
- 电商抢购高并发JAVA简单实现
- 知识贴:电子面单与传统面单的区别
- 【遍历csv文件按年份统计各列个数并批量输出】
- qs美国排名计算机专业,2016年QS美国大学计算机科学专业排名
- Docker 大热,还不了解 Dockerfile 你就OUT啦~