当前位置:编程学习 > JAVA >>

字符串分割,正则表达式

我一些字符串,是由正整数部分跟英文字母组成,正整数在前,英文字母在后,
String a= 1self;
String b= 432all;
String c = 22branch;
....
能把每一个字符串分割成正整数一个,英文字母一个么,
intger a = 1
String a2 = self
intger b1 = 432
String = all
....
--------------------编程问答-------------------- 感觉着个不能用split,看别人的回答吧 --------------------编程问答--------------------
	public static void main(String[] args) {
String str = "22branch";
Pattern pattern = Pattern.compile("^(\\d+)([a-zA-Z]+)");
Matcher matcher = pattern.matcher(str);
if(matcher.matches()){
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
}
}
--------------------编程问答--------------------
		String source = "aa22branch";

String reg = "(\\d+|[a-zA-Z]+|[\\u4e00-\\u9fa5]+)";
Matcher m = Pattern.compile(reg).matcher(source);
while (m.find()) {
String value = m.group();
System.out.println(value);
}
--------------------编程问答-------------------- 学习了 --------------------编程问答--------------------
引用 2 楼 fudongrifdr 的回复:
	public static void main(String[] args) {
String str = "22branch";
Pattern pattern = Pattern.compile("^(\\d+)([a-zA-Z]+)");
Matcher matcher = pattern.matcher(str);
if(matcher.matches()){
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
}
}
顶这个,个人觉得这个符合楼主的要求 --------------------编程问答--------------------
引用 3 楼 fangmingshijie 的回复:
		String source = "aa22branch";

String reg = "(\\d+|[a-zA-Z]+|[\\u4e00-\\u9fa5]+)";
Matcher m = Pattern.compile(reg).matcher(source);
while (m.find()) {
String value = m.group();
System.out.println(value);
}
运行这个方法是成功的。 --------------------编程问答--------------------
引用 3 楼 fangmingshijie 的回复:
		String source = "aa22branch";

String reg = "(\\d+|[a-zA-Z]+|[\\u4e00-\\u9fa5]+)";
Matcher m = Pattern.compile(reg).matcher(source);
while (m.find()) {
String value = m.group();
System.out.println(value);
}
我有个疑问啊,正则表达式写出
String reg = "(\\d+|[a-zA-Z]+)";
也是可以的,你写的这个[\\u4e00-\\u9fa5]+是什么意思啊?能讲一下吗。 --------------------编程问答--------------------
引用 7 楼 shirui8653719 的回复:
Quote: 引用 3 楼 fangmingshijie 的回复:

		String source = "aa22branch";

String reg = "(\\d+|[a-zA-Z]+|[\\u4e00-\\u9fa5]+)";
Matcher m = Pattern.compile(reg).matcher(source);
while (m.find()) {
String value = m.group();
System.out.println(value);
}
我有个疑问啊,正则表达式写出
String reg = "(\\d+|[a-zA-Z]+)";
也是可以的,你写的这个[\\u4e00-\\u9fa5]+是什么意思啊?能讲一下吗。

[\\u4e00-\\u9fa5]+
这是ASCII码的范围,匹配所有中文字符,+的意思就是匹配至少一个中文字符。 --------------------编程问答--------------------
引用 8 楼 AA5279AA 的回复:
Quote: 引用 7 楼 shirui8653719 的回复:

Quote: 引用 3 楼 fangmingshijie 的回复:

		String source = "aa22branch";

String reg = "(\\d+|[a-zA-Z]+|[\\u4e00-\\u9fa5]+)";
Matcher m = Pattern.compile(reg).matcher(source);
while (m.find()) {
String value = m.group();
System.out.println(value);
}
我有个疑问啊,正则表达式写出
String reg = "(\\d+|[a-zA-Z]+)";
也是可以的,你写的这个[\\u4e00-\\u9fa5]+是什么意思啊?能讲一下吗。

[\\u4e00-\\u9fa5]+
这是ASCII码的范围,匹配所有中文字符,+的意思就是匹配至少一个中文字符。
哦,但是我在字符串中加入中文字符,结果并不能把中文挑出来啊。那加[\\u4e00-\\u9fa5]+好像不起作用啊。 --------------------编程问答--------------------
引用 8 楼 AA5279AA 的回复:
Quote: 引用 7 楼 shirui8653719 的回复:

Quote: 引用 3 楼 fangmingshijie 的回复:

		String source = "aa22branch";

String reg = "(\\d+|[a-zA-Z]+|[\\u4e00-\\u9fa5]+)";
Matcher m = Pattern.compile(reg).matcher(source);
while (m.find()) {
String value = m.group();
System.out.println(value);
}
我有个疑问啊,正则表达式写出
String reg = "(\\d+|[a-zA-Z]+)";
也是可以的,你写的这个[\\u4e00-\\u9fa5]+是什么意思啊?能讲一下吗。

[\\u4e00-\\u9fa5]+
这是ASCII码的范围,匹配所有中文字符,+的意思就是匹配至少一个中文字符。
哦,不好意思,我刚刚测试错了,这样是可以挑出中文的,谢谢了,哈哈。 --------------------编程问答-------------------- 可以啊!用split()这个函数就能分隔了! --------------------编程问答--------------------
引用 11 楼 oLinHao007 的回复:
可以啊!用split()这个函数就能分隔了!

split()方法总要消除掉用以分隔的字符的,即括号里面的字符串会被删除,得到一个字符串数组。。。。 --------------------编程问答--------------------
String numberString = input.split("[\\d]+")[0];
String charString = input.subString(numberString.length() - 1);

手上没有Java环境,试试看 --------------------编程问答--------------------
引用 13 楼 lcf 的回复:
String numberString = input.split("[\\d]+")[0];
String charString = input.subString(numberString.length() - 1);

手上没有Java环境,试试看

好吧,我太愚笨了
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,