java 判断一个字符是否为字母

定义String s = "北京BEIJING上海SHANGHAI……"
怎样把s中的“北京”和“BEIJING”分离出来,
不要直接用String s1 = s.subString(0,2);
String s2 = s.subString(3,8)。明白了吗?没明白再问我,高分。

一下这段代码就可以满足你的这个需求,希望可以帮到你

import java.util.regex.*;

class test {

static String FirstNBytes(String s, int n) {
Pattern p = Pattern.compile("^[\\u4e00-\\u9fa5]$");
int i = 0, j = 0;
for(char c : s.toCharArray()) {
Matcher m = p.matcher(String.valueOf(c));
i += m.find() ? 2 : 1;
++j;
if(i == n) break;
if(i > n) {
--j;
break;
}
}
return s.substring(0, j);
}

public static void main(String args[]) {
String a = "我ABC汉DEF";
for(int i = 0; i < 11; ++i)
System.out.println("No." + i + ":" + FirstNBytes(a, i));
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-13
int start,end,i=0;
char[] ch = s.toCharArray();
while(!Character.isLetter(ch[i]))
{
i++;
}
start=i;
while(Character.isLetter(ch[i]))
{
i++;
}
end=i;
再取start与end间的字符组成字符串。
思路是这个,你可以尝试着修改。本回答被提问者采纳
第2个回答  2011-11-19
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestFrame {
public static void main(String[] args) {
String s = "北京BEIJING上海SHANGHAI……";
// Pattern p= Pattern.compile("([\u4e00-\u9fa5]+)(\\w+)");
Pattern p= Pattern.compile("(\\W+)(\\w+)");
//这两条都是可以的。注意第二条的第一个W是大写字母W
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group(1));
System.out.println(m.group(2));
}
}
}
第3个回答  2011-11-18
把str向int类型转换。如果成功了。则是数字。
如果不成功则不是数字。

Integer.parseInt(str);

或者用

Integer.valueOf(str).intValue();
第4个回答  2011-11-18
直接定义2个字符串呢?
String s="北京";
String s2=“BEIJING”
相似回答