锁定老帖子 主题:第001号---一句字符串中分离单词
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-28
最后修改:2011-05-28
今天写程序的时候遇到一个问题,就是如果把一句话中的单词从这句话中分离出来 比如:Always bear in mind that your own resolution to success is more import than anything! 那么就把每个单词都分离开显示,以便进一步对分离的单词进行操作
实现起来很简单,即用到split方法和正则表达式的结合即可 import java.util.Scanner; public class Test01 { public static void main(String args[]) { Scanner input=new Scanner(System.in); String str = input.nextLine(); String[] arr=str.split("[^a-zA-Z0-9]+"); for(int i=0;i<arr.length;i++) System.out.println(arr[i]); System.out.println("There are "+arr.length+" words in the line!"); } }
这样,就将里面的单词,分离出来了,如果有数字的话,也可以分离开来
下面就说说split方法的使用
一、split方法 java.lang.string.split 功能:将一个字符串分割成子字符串,然后将结果作为字符串数组返回 用法:stringObject.split([separator,[limit]]) split方法的结果是一个字符串数组,在stringObject中每个出现separator的位置都要进行分解
stringObject为必选项,就是要被分解的String对象或者文字,该对象不会被split方法修改 separator为可选项。字符串或者正则表达式对象,它标示了分离字符串时使用的是一个还是多个字符,如果忽略该选项 返回包含整个字符串的单一元素的数组。 limit可选项:这个值用来限制返回数组中元素个数
例子1: public class Test01 { public static void main(String args[]) { String str = "what is your name"; String s[] = str.split(" "); for(int i = 0; i < s.length; i++) { System.out.println(s[i]); } } }
运行结果: what
例子2: public class Test01 { public static void main(String args[]) { String str = "what is your name"; String s[] = str.split(" ",3); for(int i = 0; i < s.length; i++) { System.out.println(s[i]); } } } 运行结果: what
例子3: public class Test01 { public static void main(String args[]) { String str = "192.168.10.1"; String s[] = str.split("\\."); for(int i = 0; i < s.length; i++) { System.out.println(s[i]); } } }
运行结果: 192
这里会看到,split方法里多了两个斜杠,如果去掉斜杠后,运行,会发现,没有任何结果,其实split(String regex)方法中的regex是一个正则表达式,而.在正则表达式中有其他的意思,所以需要进行转义才可以用
下面的是从网上找到的 [size=12px]1。^\d+$ //匹配非负整数(正整数 + 0) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-05-28
看了,获益匪浅。
|
|
返回顶楼 | |
浏览 2401 次