Java初学者必知 关于Java字符串问题

摘自 http://developer.51cto.com/art/201503/469443.htm

下面我为大家总结了10条Java开发者经常会提的关于Java字符串的问题,如果你也是Java初学者,仔细看看吧:

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

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

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

String是不可变的,这就意味着它一旦被创建,就将永久驻留在内存中,直到垃圾回收器将其回收为止。然而用数组存储方式,你可以明确地改变数组中的元素,因此用数组方式,安全信息将有可能不存在系统内存的任何地方。

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

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

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

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

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

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

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

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

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

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

在jdk 6中,substring()方法在原来字符串中提供了一个截取字符的窗口,它并没有创建一个新的String实例。如果你想创建新的字符数组,你可以在substring()后加一个空字符,就像这样:

  1. 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公共语言库的其中一个类库成员。

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

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

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

  1. 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公共语言库中的StringUtils,代码如下:

  1. int n = StringUtils.countMatches("11112222", "1");
    System.out.println(n); 
时间: 2024-12-24 18:26:51

Java初学者必知 关于Java字符串问题的相关文章

Java初学者必知:Java语言的11大特点

Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异.多线程的静态语言.那么java语言的特点是什么呢? 1.Java语言是简单的 Java 语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java.另一方面,Java丢弃了C++中很少使用的.很难理解的.令人迷惑 的那些特性,如操作符重载.多继承.自动的强制类型转换.特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧. 2.Java语言是一个面

第4节:Java基础 - 必知必会(中)

第4节:Java基础 - 必知必会(中) 本小节是Java基础篇章的第二小节,主要讲述抽象类与接口的区别,注解以及反射等知识点. 一.抽象类和接口有什么区别 抽象类和接口的主要区别可以总结如下: 抽象类中可以没有抽象方法,JDK8版本开始提供了接口总方法的default实现 抽象类和类一样是单继承的:接口可以实现多个父类 抽象类中可以存在普通的成员变量:接口中的变量必须是static final类型的,必须被初始化,接口中只能有常量,没有变量 解析: 在Java中,我们用abstract来定义抽

第5节:Java基础 - 必知必会(下)

第5节:Java基础 - 必知必会(下) 本小节是Java基础篇章的第三小节,主要讲述Java中的Exception与Error,JIT编译器以及值传递与引用传递的知识点. 一.Java中的Exception和Error有什么区别 Exception和Error的主要区别可以概括如下: Exception是程序正常运行中预料到可能出现的错误,并且应该被捕获并进行相应处理,是一种异常现象. Error是正常情况下不可能发生的错误,Error会导致JVM处于已追踪不可恢复的状态,不需要捕获处理,比如

Java初学者必学的六大Java语言要点

本文主要讲述Java新手之学习Java语言的六大要点,更多Java教程知识,请登陆疯狂软件教育官网. Java的学习是比较复杂的,主要表现在相关的一系列平台.规范和协议上.有经验的Java程序员都知道,只掌握了Java语言本身很难开发应用程序.本文不讨论这些复杂的概念,而是我是在广州参加的培训,现在从初学者的角度,对于Java语言本身的学习提出自己的见解和建议. 本文的讨论基于以下假设: 1. 学习的目的是为了将来进行应用程序的开发,而不是进行语言理论研究 2. 将来的应用开发是在成熟的平台上展

五款Java开发者必知的错误跟踪工具

首先我们先看下什么是java? Java是由Sun Microsystems公司于 1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出.Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的.1995年更名为Java,并重新设计用于开发Internet应用程序.用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台.动态的We

开发工具-Java开发必知工具

压力测试工具_JMeter 作用 1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC). 2.完全的可移植性和100% 纯java. 3.完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包. 4.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样. 5.精心的GUI设计允许快速操作和更精确的计时. 6.缓存和离线分析/回放测试结果. 高可扩展性 1.可链接的取样器允许无限制的测试能力

Java初学者:第一个java程序告诉了我们什么

上次我们解释了一下命令行模式下如何编译运行java程序,这次我们来简单解释一下我们那个Hello baby的小程序,首先我们来看一下源码: public class Test,到此为止,翻译过来就是:公有的名为Test的类.这是什么意思呢?这你就先别管了,以后再说. Public static void main(String[] args),这是一个公有的,静态的,没有返回值的,名为main的,参数名为args, 参数类型是String[]的一个函数.这是什么意思呢?这你就先别管了,以后再说.

Java初学者:第一个Java程序

上次我们简单介绍了一下Java,这次,我们来初步体验一下Java程序,我想,就算你没学过Java,你也听过著名的"Hello world"吧,对于这个向整个世界打招呼的话,我总觉得很像一个地道的宅男,呆在家里啃着方便面的时候喊出来的,因此我们改动一下下,嗯...,"Hello baby"吧. 如果你完全没学过编程,我想,你应该觉得我在说胡话.其实,我就是说,我们来写个简单的Java程序,让电脑的输出设备(俗称显示器)显示"Hello baby"这

关于MySQL基础的一些相关知识【初学者必知】

[本文使用的可视化界面软件是小海豚SQLyog] 最近在弄SSM框架,先是在Java ee项目中被代码绕晕,然后在Tomcat被摆了一道,心想着:”好,数据库那么简单,就先做数据库吧!“ ——万万没想到,居然在插入数据中设置了”陷阱“:因为字符编码不一致,无法插入记录. 于是,我通过百度得知,因为一开始新建数据库不谨慎,没有修改编码,导致后面都要一一修正. 首先,我修改了my.ini的配置 并且分别修改了数据库与表的字符编码 温馨提示:修改完后可用 show variables like '%c