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字符串问题相关推荐

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

    下面是Java字符串10个经常被问到的问题. 1.怎样比较字符串,使用"=="还是equals()? 简而言之,"=="测试引用是否相同,而equals()测试 ...

  2. Java字符串中最长回文子字符串

    Longest palindrome substring in a string is a very common java interview question. To find out the l ...

  3. 常见的java异常_浅谈十个常见的Java异常出现原因

    异常是 Java 程序中经常遇到的问题,我想每一个 Java 程序员都讨厌异常,一 个异常就是一个 BUG,就要花很多时间来定位异常问题. 1.NullPointerException 空指针异常,操 ...

  4. java中String类是什么_Java中字符串的学习(一)String类的概述及常见方法使用

    转载请注明出处http://www.cnblogs.com/devtrees/p/4347079.html (拓展:Api:编程语言对外给我们提供的应用程序接口.) 一.概述: 我们平时上网发帖,帖子 ...

  5. java 字符串掐头去尾_java中常见的类

    简介 类层次结构最顶层的基类,所有类都直接或间接继承自Object类,所以,所有的类都是以恶个Object(对象) 构造方法 Object: 构造一个对象,所有子类初始化时都会优先调用该方法 常用的成 ...

  6. Java中定义字符串的两种常见方式、使用==和equals()比较字符串

    在讲使用==和equals()比较字符串之前,我们首先要讲定义字符串的两种常见方式,一种是定义一个常量,即直接定义字符串,一种是通过new关键字定义一个变量,即使用String类定义字符串,如下图: ...

  7. 在java读字符串入文件_如何在java中将文件读入字符串?

    我已经将文件读入String. 该文件包含各种名称,每行一个名称. 现在的问题是我想在String数组中使用这些名称. 为此我写了以下代码: String [] names = fileString. ...

  8. 常见的 Java 错误及避免方法

    在开发Java软件时可能会遇到许多类型的错误,但大多数是可以避免的.为此我们罗列了最常见的Java编码错误,其中包含代码示例和教程,以帮助大家解决常见的编码问题. 编译器错误 当Java软件代码通过编 ...

  9. sonar java_修复Sonar中常见的Java安全代码冲突

    sonar java 本文旨在向您展示如何快速修复最常见的Java安全代码冲突. 它假定您熟悉代码规则和违规的概念以及Sonar如何对其进行报告. 但是,如果您以前从未听过这些术语,则可以阅读Sona ...

最新文章

  1. android ffmpeg 编码h264,Mac系统下ffmpeg+h264+flv编码的android录制屏幕实现2
  2. 青少年电子信息智能创新大赛 赛项说明(Scratch编程创新挑战赛)
  3. MySQL数据库如何杀死会话_如何彻底杀掉不良用户会话
  4. python零碎笔记整理1
  5. linux手动安装unzip_centos7离线安装unzip和zip
  6. Android thumbnail 图片的获得及与原始图片的映射
  7. python怎么打断点_Pycharm如何打断点的方法步骤
  8. c语言最短线性路径算法,巧用Excel规划求解最短路径
  9. Spring框架学习之路,完整版 持续更新,有代码仓库对比
  10. 电感5大特性参数,你知道几个?
  11. u盘启动进入grub linux,利用grub4dos的u盘启动盘拯救linux系统
  12. 《恒盛策略》外资巨头突然出手!又有炒股软件罢工
  13. 深度解析智能运维场景下“港口行业”解决方案
  14. 二人成团,阿里云服务器拼团活动开启
  15. OpenGL 游戏开发: 熟悉练习【《OpenGL超级宝典》第二章】
  16. 电商抢购高并发JAVA简单实现
  17. 知识贴:电子面单与传统面单的区别
  18. 【遍历csv文件按年份统计各列个数并批量输出】
  19. qs美国排名计算机专业,2016年QS美国大学计算机科学专业排名
  20. Docker 大热,还不了解 Dockerfile 你就OUT啦~

热门文章

  1. 深入浅出ES6(一):ES6是什么
  2. android代码记录日期,Android日期和时间选择器实现代码
  3. 第八章 神经网络表示-机器学习老师板书-斯坦福吴恩达教授
  4. 雅客EXCEL(1)--快速录入、统计、日期
  5. Android Nand Flash 分区
  6. 基于FPGA的LED点阵系统开发
  7. VOIP业务仿真建模,使用间歇泊松过程模型,能够图形显示业务的突发特性
  8. 异构网络垂直切换算法lte/wimax
  9. 最新阿里内推Java后端面试题
  10. 作为一个前端,可以如何机智地弄坏一台电脑?