现在有字符串String str ="****市黄浦区*******",
我想用正则表示,得到市和区中间的字即得到:黄埔,该怎么做,*代表其他字
我想用正则表示,得到市和区中间的字即得到:黄埔,该怎么做,*代表其他字
解决方案 »
- 请问:编写一个登陆注册的功能,怎样把用户的登录名或注册名保存在一个XML文件中,也就是在XML中存入数据
- 为什么不能通过编译,求指教?
- 关于OutputStream类自己竟然是自己的子类??????
- 关于创建对象的疑问?高手请进
- ###都是设计模式惹的祸-----下面不知道该怎么写了###
- 求助-图片旋转后丢失部分图片
- 在j2ee编程中什么编写工具最合适-最好能支持.一下列出可用方法的语法提示的
- 咨询以下:Thinking in java里,覆写(overriding)和重载(overloading)到底有什么区别?!
- 如何安装class包
- 求问这道题目的解题思路,万分感谢啊!!
- 大数阶乘运行结果不正确
- 江湖救急啊!!刚编了个简单的Java程序 不知道为什么出错 大家看下啊
str.substring(str.indexOf("市")+1,str.lastIndexOf("区"))
你把可能的情况都说一下。
Pattern p = Pattern.compile("\w*市(\w*)区\w*");
Matcher m = p.matcher(str);
if (m.find()) {
result = m.group(1);
}
import java.util.Arrays;
import java.util.List;public class Test { public static void main(String[] args) {
String[] strs = find("****市黄浦区***********市浦东新区*******", '市', '区');
System.out.println(Arrays.toString(strs));
}
public static String[] find(String str, char start, char end) {
if(str == null || str.length() == 0) {
return new String[0];
}
char[] chs = str.toCharArray();
boolean isStart = false;
List<String> list = null;
for(int i = 0, offset = i; i < chs.length; i++) {
if(chs[i] == start) {
isStart = true;
offset = i;
continue;
}
if(isStart && chs[i] == end) {
list = addSub(list, chs, offset + 1, i - offset - 1);
continue;
}
}
return toArray(list);
}
private static List<String> addSub(List<String> list, char[] chs, int start, int end) {
if(list == null) {
list = new ArrayList<String>(chs.length / 2);
}
list.add(new String(chs, start, end));
return list;
}
private static String[] toArray(List<String> list) {
if(list == null || list.size() == 0) {
return new String[0];
}
return list.toArray(new String[list.size()]);
}
}
1、拥有扎实的JAVA基础,算法基础。
2、熟悉JAVA多线程编程,JAVA网络编程,并有一年以上的全职编程经验。
3、很好的逻辑思维能力与想像力。
4、熟悉MYSQL数据库,熟练使用SQL语句。
5、勤奋好学,对新知识掌握速度快。
6、踏实肯干,能够很好的进行团队合作,和任务多时的加班。
7、热爱游戏,并希望把游戏编程当成自己的事业。
有意者可投简历至:Email: [email protected]
Matcher m = Pattern.compile("市(.+?)区").matcher(str); while (m.find()) {
System.out.println(m.group(1));
}
}
=============
打印:
黄浦
黄浦2
黄浦3