`
feigme
  • 浏览: 155124 次
  • 性别: Icon_minigender_1
  • 来自: 球面世界
社区版块
存档分类
最新评论

Java常用方法使用心得

    博客分类:
  • Java
阅读更多
不断完善中ing . . .

java.lang.String split

String的split方法是直接按照给定的字符串对字符串进行拆分,例如
java 代码
  1. String value = "a,b,c,d,e";
  2. String[] names = value.split(",");
  3. for(int i=0,n=names.length;i
  4. System.out.print(names[i]);
  5. }

运行结果:

a b c d e

但是在做ip解析时发现出了问题,代码如下:

java 代码
  1. String value = "209.242.1.1";
  2. String[] names = value.split(".");
  3. for(int i=0,n=names.length;i
  4. System.out.print(names[i]+" ");
  5. }

理想的输出结果应该是219 242 1 1,结果什么都没有输出。

很奇怪哦。看一下split的方法签名吧。

java 代码
  1. public String[] split(String regex)

这里的参数的名称是 regex ,也就是 Regular Expression (正则表达式)。这个参数并不是一个简单的分割用的字符,而是一个正则表达式

java 代码
  1. public String[] split(String regex, int limit) {
  2. return Pattern.compile(regex).split(this, limit);
  3. }

split 的实现直接调用的 Matcher 类的 split 的方法。“ . ”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义。

修改代码如下:

java 代码
  1. String value = "209.242.1.1";
  2. String[] names = value.split("\\.");
  3. for(int i=0,n=names.length;i
  4. System.out.print(names[i]+" ");
  5. }


Replace 方法

首先看看Replace方法的介绍
java 代码
  1. String java.lang.String.replace(char oldChar, char newChar)
  2. Returns a new string resulting from replacing all occurrences of oldChar in
  3. this string with newChar.
  4. If the character oldChar does not occur in the character sequence represented by
  5. this String object, then a reference to this String object is returned. Otherwise,
  6. a new String object is created that represents a character sequence identical to
  7. the character sequence represented by this String object, except that every
  8. occurrence of oldChar is replaced by an occurrence of newChar.
  9. Examples:
  10. "mesquite in your cellar".replace('e', 'o')
  11. returns "mosquito in your collar"
  12. "the war of baronets".replace('r', 'y')
  13. returns "the way of bayonets"
  14. "sparring with a purple porpoise".replace('p', 't')
  15. returns "starring with a turtle tortoise"
  16. "JonL".replace('q', 'x') returns "JonL" (no change)
  17. Parameters:
  18. oldChar the old character.
  19. newChar the new character.
  20. Returns:
  21. a string derived from this string by replacing every occurrence of oldChar with newChar.

用法 :
java 代码
  1. @Test
  2. public void testReplace(){
  3. String A = "aaa bCskd dkkAik kdaFe";
  4. System.out.println(A.replace('a', '_'));
  5. }
结果为:___ bCskd dkkAik kd_Fe

此方法用来替换char字符,对字符串不能处理
A.replace('aaa', '=') 是错误的

但是
A.replace(“aaa”, “=”)却是可以的
java 代码
  1. @Test
  2. public void testReplace(){
  3. String A = "aaa bCskd dkkAik kaaaFe";
  4. System.out.println(A.replace("aaa", "="));
  5. }
结果为:= bCskd dkkAik k=Fe

可见 replace("","")与方法replaceAll("","")拥有差不多的功能
仔细看看差别
java 代码
  1. String java.lang.String.replace(CharSequence target, CharSequence replacement)
  2. Replaces each substring of this string that matches the literal target sequence
  3. with the specified literal replacement sequence. The replacement proceeds from
  4. the beginning of the string to the end, for example, replacing "aa" with "b" in
  5. the string "aaa" will result in "ba" rather than "ab".
  6. Parameters:
  7. target The sequence of char values to be replaced
  8. replacement The replacement sequence of char values
  9. Returns:
  10. The resulting string
  11. Throws:
  12. NullPointerException if target or replacement is null.
  13. Since:
  14. 1.5
是1.5之后才有的功能哦


但是 replaceAll却更强大
java 代码
  1. @Test
  2. public void testReplace(){
  3. String A = "aaa bCskd dkkAik kaaaFe";
  4. System.out.println(A.replace(" ", ""));
  5. }
结果为aaabCskddkkAikkaaaFe
replaceAll可以将字符串内部的空格去掉
但是用replace(' ','')方法却不可以
replace(" ","")方法可以

另外一点
java 代码
  1. @Test
  2. public void testReplace(){
  3. String A = "aaa bCskd dkkAik kaaaFe";
  4. System.out.println(A.replaceAll("[a-z]", "="));
  5. }
结果为:=== =C=== ===A== ====F=
replaceAll可以用正则表达式,强大啊
我们看看replaceAll的用法
java 代码
  1. String java.lang.String.replaceAll(String regex, String replacement)
  2. Replaces each substring of this string that matches the given regular expression
  3. with the given replacement.
  4. An invocation of this method of the form str.replaceAll(regex, repl) yields exactly
  5. the same result as the expression
  6. java.util.regex.Pattern. compile(regex).java.util.regex.Pattern.matcher(java.lang.CharSequence) matcher(str). replaceAll(repl)
  7. See Also:
  8. java.util.regex.Pattern
  9. Parameters:
  10. regex the regular expression to which this string is to be matched
  11. Returns:
  12. The resulting String
  13. Throws:
  14. PatternSyntaxException if the regular expression's syntax is invalid
  15. Since:
  16. 1.4
  17. @spec
  18. JSR-51

分享到:
评论
3 楼 zhang_yi_yi 2014-06-30  
2 楼 yeshuang 2013-06-13  
不错,希望以后多多介绍一些
1 楼 lshhjxlj 2012-03-09  
Yes,it very good!

相关推荐

    java中常用设计模式总结心得

    以下是对Java中常用设计模式的详细解释: 1. **单例模式**:单例模式确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于配置管理、线程池或者数据库连接池等场景。实现方式有懒汉式(线程不安全)、...

    java常用系统类库实验

    通过这两个实验,学生不仅能够掌握Java中常用类库的使用,还能够提高解决问题的能力,学会如何利用Java标准库来简化编程任务,提高代码的效率和可读性。此外,实验中的方法覆盖练习也有助于学生深入理解面向对象编程...

    JAVA常用类总结

    JAVA常用类,java封装类,String类和StringBuffer类......

    java学习心得及其使用技巧

    java学习心得及其使用技巧java学习心得及其使用技巧

    java组件使用心得(实用)

    Java中的Socket类提供了建立客户端与服务器之间网络连接的能力。以下是一个简单的示例: ```java BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); bw.write("GET / ...

    Java中Date和Calendar常用方法

    总的来说,`Date`和`Calendar`在Java中提供了处理日期和时间的基础功能。虽然`Date`类的直接操作相对简单,但`Calendar`提供了更多灵活性,包括修改时间域和进行日期计算。在实际开发中,我们通常会结合使用这两个类...

    java学习心得,笔记,思想

    在Java中,类和对象是核心概念。类定义了数据和行为,而对象则是类的实例,具备实际的行为和属性。理解如何创建和使用类,以及如何通过对象间的相互作用实现功能,是Java编程的关键。 接着,我们来看一下Java集合...

    java几种常用的设计模式源码和心得

    本资源包含了2016年6月20日关于Java常用设计模式的源码和作者的心得体会,这对于我们深入理解和应用这些模式具有很大的帮助。 首先,我们要了解设计模式的基本分类。设计模式分为三大类:创建型模式(Creational ...

    JAVA基础加强 --学习心得一(JAVA中常用英文单词简写释义).docx

    在Java中,API包含了各种库和框架,如Java SE、Java EE、JavaFX等。 2. **JRE (Java Runtime Environment)**:JRE是运行Java应用程序所需的最小环境,包括Java虚拟机(JVM)和Java核心类库,但不包含开发工具。 3....

    JAVA基础加强 --学习心得一(JAVA中常用英文单词简写释义).pdf

    在学习JAVA基础的过程中,了解并掌握一些常用的英文缩写是非常重要的。这些缩写不仅代表着JAVA技术的核心概念,也是深入理解JAVA平台和应用开发的关键。以下是一些重要术语的详细解释: 1. **API (Application ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    如何使用方法的返回值? 166 7.4.4 使用return结束方法 166 7.5 方法重载(overload):给汽车加速添个限制 168 7.5.1 什么是方法的签名 168 7.5.2 什么是重载?为什么要重载? 168 7.5.3 给汽车加个重载的方法...

    Java入门1·2·3:一个老鸟的Java学习心得.rar 超清

    第1篇为Java语言基本语法,包括Java语言概述、配置开发环境、Java中的基本数据类型、Java运算符、Java流程控制语句和数组。第2篇为Java语言高级语法,包括类、对象、方法、继承、多态、修饰符、接口、抽象类、内部类...

    java实验报告心得.doc

    Java 实验报告心得 本实验报告旨在掌握 Java 基础知识,包括 String 类、StringBuffer 类、Math 类、包装类和 StringTokenizer 类等。通过实验,学生可以熟悉 Java 基础编程概念和技术。 一、String 类 *equals()...

    java夜未眠读书心得.doc

    《Java夜未眠读书心得》记录了作者在学习Java编程过程中对《Think in Java》和其他相关书籍的理解与感悟。从这些心得中,我们可以提炼出一些关键的Java编程知识点。 首先,面向对象编程(OOP)是Java的核心概念。...

    Java入门1·2·3——一个老鸟的Java学习心得 高清pdf

    第1篇为Java语言基本语法,包括Java语言概述、配置开发环境、Java中的基本数据类型、Java运算符、Java流程控制语句和数组。第2篇为Java语言高级语法,包括类、对象、方法、继承、多态、修饰符、接口、抽象类、内部类...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    如何使用方法的返回值? 166 7.4.4 使用return结束方法 166 7.5 方法重载(overload):给汽车加速添个限制 168 7.5.1 什么是方法的签名 168 7.5.2 什么是重载?为什么要重载? 168 7.5.3 给汽车加个重载的方法...

    Java的一点心得

    - **引用类型与基本类型**:区分了Java中的引用类型与基本类型,强调除八种基本类型外,所有其他类型均为引用类型。 - **对象创建与访问**:讲解了使用`new`关键字创建对象的过程,以及如何通过对象引用访问成员变量...

    java资料,学习心得

    JDBC(Java Database Connectivity)是Java中用来对关系型数据库进行统一访问的标准API,它可以为多种关系数据库提供统一的访问接口。通过JDBC,开发者可以使用Java编写应用程序来连接不同的数据库,执行SQL语句并...

Global site tag (gtag.js) - Google Analytics