特别注意的是:如果使用“\”分割,则需要使用“\\\\”来分割!
在java.lang包中有String.split()方法,返回是一个数组
我在应用中用到一些,给大家总结一下,仅供大家参考:
1、如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"\\";
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or");
使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
我们看jdk doc中说明
public String[] split(String regex)
Splits this string around matches of the given regular expression.
参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码:
用竖线 | 分隔字符串,你将得不到预期的结果
String[] aa = "aaa|bbb|ccc".split("|");
//String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果
for (int i = 0 ; i <aa.length ; i++ ) {
System.out.println("--"+aa[i]);
}
用竖 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。
String[] aa = "aaa*bbb*ccc".split("*");
//String[] aa = "aaa|bbb|ccc".split("\\*"); 这样才能得到正确的结果
for (int i = 0 ; i <aa.length ; i++ ) {
System.out.println("--"+aa[i]);
}
显然,+ * 不是有效的模式匹配规则表达式,用"\\*" "\\+"转义后即可得到正确的结果。
"|" 分隔串时虽然能够执行,但是却不是预期的目的,"\\|"转义后即可得到正确的结果。
还有如果想在串中使用"\"字符,则也需要转义.首先要表达"aaaa\bbbb"这个串就应该用"aaaa\\bbbb",如果要分隔就应该这样才能得到正确结果:
String[] aa = "aaa\\bbb\\bccc".split("\\\\");
转自:http://hi.baidu.com/danghj/blog/item/7259c2b461bebc708bd4b21e.html
分享到:
相关推荐
在 Java 中,可以使用 `String` 类的 `join()` 方法将数组中的元素组合成字符串,但是 Java 中没有内置的方法可以直接实现这一点。 5. Java 中的命名规范 在 Java 中,方法名通常使用小写字母开头,而类名使用大写...
根据给定文件的信息,本文将围绕“JS与Java中判断字符串中文、英文混合长度的方法”这一主题进行深入探讨。文章将分别介绍JavaScript和Java中如何处理包含中文字符和英文字符的混合字符串,并计算其等效长度。 ### ...
在Java中,我们可以使用`BufferedReader`或`Scanner`类来读取文件内容,然后通过`split()`方法根据分隔符拆分每一行,得到一个字段数组。 例如: ```java BufferedReader reader = new BufferedReader(new ...
面试中,Java问题涵盖了从基础知识到框架、中间件、数据库等方面。下面是对Java面试题的知识点总结: Java基础 1. JDK和JRE的区别:JDK(Java Development Kit)是Java开发工具包,包括JRE和开发工具,而JRE(Java...
为了实现这一点,你需要了解Java的Scanner类用于获取用户输入,以及String类的split()方法用于解析输入的字符串。 最后,我们注意到标签中提到"Calculator",这可能意味着源代码中定义了一个名为Calculator的类。这...
在Java中,基本类型(如int、char等)的传递是按值传递的,而对象类型的传递则是按引用传递的。理解这一点对于正确处理变量和对象之间的交互至关重要。 **2. hashCode & equals** `hashCode()` 和 `equals()` 方法...
Java集合类中的ArrayList或LinkedList可以很方便地实现这一点。这里我们选择ArrayList,因为它的插入和访问速度较快。 ```java import java.util.ArrayList; import java.util.Collections; ArrayList<Integer> ...
Java笔试中的算法题通常涉及到数据结构、排序、字符串处理等方面的知识。以下是对两道题目及其解题思路的详细解析: 1. **升序与降序排序数组** 这道题目要求对输入的以逗号分隔的数字进行排序。首先,我们可以...
在面试中,Java的基础知识和新特性通常是考察的重点。以下是一些关于Java的常见面试知识点: 1. **Java三大特性** - **抽象**:抽象是类设计的核心,它将类的公共特性提取出来,形成独立的抽象类,不关注实现细节...
题目描述中的“内存”和“CPU”就明确指出了这一点。这意味着在编写代码时,除了考虑功能的正确性,还需关注算法的时间复杂度和空间复杂度,确保程序能在给定资源限制下高效运行。这要求参赛者具备良好的算法优化...
1. **Java文件中类的定义**:一个`.java`源文件中可以定义多个类,但只能有一个公共类(使用`public`修饰符的类),并且公共类的名称必须与文件名相同。如果类不是`public`,则文件名可以是任意类的名称。 2. **...
在这个题解压缩包中,我们很可能会找到一个或多个Java解决方案,详细解释了如何比较两个版本号。 首先,让我们来理解一下版本号的构成。版本号通常由主版本、次版本和修订版组成,例如1.2.3。每个部分可以是整数,...
在Java编程中,处理字符串是常见的任务,Apache Commons Lang库中的StringUtils类提供了丰富的字符串操作方法,极大地提高了开发效率。本文将深入探讨StringUtils的几个重要功能,包括空字符串检查、清除空白字符、...
Java的`Integer.parseInt()`方法可以实现这一点: ```java int[] numbers = new int[numbersStr.length]; for (int i = 0; i ; i++) { numbers[i] = Integer.parseInt(numbersStr[i]); } ``` 现在我们有了一个...
在Java语言中,字符串的处理和操作尤为关键,因为Java语言为字符串类型提供了丰富的API来满足开发者的不同需求。 接下来,我们将基于给定文件的部分内容,详细探讨Java中字符串处理的知识点: 1. 字符串基础概念:...
Java的`String`类提供了丰富的API,如`indexOf()`、`contains()`和`split()`。正则表达式(`Pattern`和`Matcher`类)可以帮助我们实现复杂的匹配逻辑。 多线程可能在处理大量数据时变得必要,以利用多核处理器的...
这可能涉及字符串处理函数,例如在Python中使用`split()`分隔字符串,或者在Java中使用`substring()`和`replace()`等方法。处理后的数据可能需要存储在数组、列表、集合或自定义数据结构中,以便进一步操作。 3. **...
`new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime())` 在Java中用于格式化当前时间,得到年月日时分秒的字符串表示。 7. **jQuery表单提交**: `$("#formid").submit();` ...
- **正则表达式**:Java 正则表达式的语法与 JavaScript 相似但也有区别,某些方法如 `replaceAll` 和 `split` 在转换后的 JavaScript 中可能表现不同。 - **序列化**:由于动态类装载和反射在编译后的 JavaScript ...