【Simple Java】Java字符串中常见的10个问题

下面是Java中10个最常见的关于字符串的问题。

怎样比较字符串?使用==还是equals()

简单的说,“==”用于判断引用是否相等,equals()用于判断值是否相等。除非你要比较两个字符串是否是同一个对象,否则你应该使用equals()方法。如果你知道字符串驻留的概念会更好。

对于敏感信息优先使用字符数组而不是字符串

字符串是不可变的,意味着一旦被创建,他们就会一直存在直到垃圾回收器回收它们。然而对于一个数组来说,你可以明确的改变它们的元素。使用这种方法,敏感信息(如密码)就不会长期存在于系统中。

switch语句是否可以用string

是的,对于JDK7,我们是可以使用字符串作为switch条件,然而在jdk6,我们不能使用字符串作为switch条件。

// java 7 only!
switch (str.toLowerCase()) {
    case "a":
        value = 1;
        break;
    case "b":
        value = 2;
        break;
}

怎样将字符串转成整型

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

很简单,但是有时候也会被忽视。

怎样按空白字符(可能多个)分割字符串

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

substring()方法在做什么

在JDK 6,substring()方法不会创建一个新的字符数组,而是使用原有字符串的字符数组,为了创建一个新的字符数组组成的字符串,你可以在后面加上一个空字符串,如下:

str.substring(m, n) + ""

这会创建一个新的字符数组,组成新的字符串对象。使用这种方法有时候会提高性能,因为垃圾回收器能回收无用的大字符串,只保留剩下的子字符串。

在JDK7,substring()方法会创建一个新的字符数组,而不是使用已有的,可以参考以下链接了解更多关于JDK6和JDK7中substring()方法的异同。

http://www.programcreek.com/2013/09/the-substring-method-in-jdk-6-and-jdk-7/

String vs StringBuilder vs StringBuffer

String vs StringBuilder:StringBuilder是可变的,意味着你可以在其创建后修改它。

StringBuilder vs StringBuffer:StringBuffer是同步的,意味着它是线程安全的,但是会比StringBuilder慢。

怎样创建重复字符串

在Python中,我们可以简单的使用数字重复字符串;而在Java中,我们可以使用Apache Commons Lang 包下的StringUtils工具类的repeat()来实现,如下:

String str = "abcd";
String repeated = StringUtils.repeat(str,3);
//abcdabcdabcd

如何将字符串转成date类型

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

统计字符在某个字符串中出现的次数

使用Apache Commons Lang 包下的StringUtils工具类

int n = StringUtils.countMatches("11112222", "1");
System.out.println(n);

留给读者:如何检测一个字符串是否都是大写字母

译文链接:http://www.programcreek.com/2013/09/top-10-faqs-of-java-strings/

时间: 05-16

【Simple Java】Java字符串中常见的10个问题的相关文章

Java提取字符串中的手机号

java通过正则表达式提取字符串中的手机号,简单快速方便,能提取多个手机号 public String getTelnum(String sParam){ if(sParam.length()<=0) return ""; Pattern pattern = Pattern.compile("(1|861)(3|5|8)\\d{9}$*"); Matcher matcher = pattern.matcher(sParam); StringBuffer bf

Java 去除字符串中的空格和其他字符

直接上代码了. <span style="font-size:18px;">import java.util.regex.Matcher; import java.util.regex.Pattern; /** * java 去除字符串中的空格和其他字符 * @author YYBJ * @date 2014-10-19 */ public class CleanString { public static String replaceBlank(String str) {

java判断字符串中是否包含汉字

原文:java判断字符串中是否包含汉字 源代码下载地址:http://www.zuidaima.com/share/1550463517428736.htm package com.zuidaima.util; /** *@author www.zuidaima.com **/ public class test { public static void main(String[] args) { String a = "中国China"; for (int i=a.length();

java从字符串中提取数字

1.做一下操作时会一般会用到提取数字操纵: a.列表中有翻页,当新添加的数据不是放在第一条或者最后一条时,需要翻页并循环找到对应的那条数据 b.当新添加的数据放在第一条或者最后一条时,则不需要翻页,只需要直接进入该页面然后直接找到第一条或者最后一条数据即可. 2.例子: 界面: javs代码: /** * java从字符串中提取数字 * str:传递过来的字符串 */ public static List<String> getNUm(String str){ str.trim(); //St

java统计字符串中字符及子字符串个数

import java.util.Scanner;public class Counter { static Scanner scanner = new Scanner(System.in); public static void count(String s) { int low, upper, num, others; low = upper = num = others = 0; for (int i = 0; i < s.length(); i++) { if (Character.is

java截取字符串中的数字

java从字符串中提取数字 随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法,正则表达式,集合类,还有就是String类提供的方法. 1 String类提供的方法: package 测试练习; import java.util.*; public class get_StringNum { /**  *2012.6.2  */ public static v

Java清除字符串中重复出现的字符的代码

在工作过程,将做工程过程比较好的内容做个珍藏,如下内容是关于Java清除字符串中重复出现的字符的内容,应该是对大家有较大用. public class StringCtrl { public static void main(String[] args){ String s = "ajjbaacsa"; StringCtrl sctrl = new StringCtrl(); System.out.println(sctrl.rmRepeated(s)); } String rmRep

数据结构笔记01:编程面试过程中常见的10大算法(java)

以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念.由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍.本文将从Java的角度看问题,包含下面的这些概念: 1. 字符串 如果IDE没有代码自动补全功能,所以你应该记住下面的这些方法. toCharArray() // 获得字符串对应的char数组 Arrays.sort() // 数组排序 Arrays.toString(char[] a) // 数组转成字符串 charAt(int x) // 获得

java之字符串中查找字串的常见方法

1.int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引.      int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引. 函数数名:indexOf 调用方式:Object(String).indexOf(String str,int startIndex)或String.indexOf(String str) 参数说明:str需要查找的字串. startI