我有一个List,我想将前两个字符(字母字符)分成不同的字符串,然后是所有后面的数字(它们的长度不同)。 我怎么能这样做?
String wholeString == "AB4578";
String alpha; // this has to be AB
String num; // this has to be 4578
非常感谢你!
答案 0 :(得分:3)
已测试且有效:
String wholeString = "AB4578";
String alpha = null;
String num = null;
for (int i = 0; i < wholeString.length(); i++) {
if (wholeString.charAt(i) < 65) {
alpha = wholeString.substring(0, i);
num = wholeString.substring(i);
break;
}
}
使用这种方法,Az部分和0-9部分的大小可能不同,但考虑到charAt(...)
中char
的每个String
正在调用{{1}},它可能不是很有效
希望这有帮助。
答案 1 :(得分:1)
String wholeString = "AB4578";
String alpha = wholeString.substring(0,2);
String num = wholeString.substring(2);
必须参加
答案 2 :(得分:1)
如果格式相同,则已提供答案。但是,如果格式不同,则可以将字符串转换为char数组,并根据ASCII值检查每个字符,以检查它是字母还是数字。
char[] ch=wholestring.toCharArray();
现在您可以应用for循环来单独检查每个字符。
for(int l=0; l<ch.length;l++)
{
//code to check the characters
}
您可以使用StringBuilder将不同字符串中的两种类型分开,或者形成两个char数组,然后使用
将它们转换为字符串String.valueOf(chArray);
ASCII值 - http://www.asciitable.com/
答案 3 :(得分:0)
尝试使用字符串的子字符串方法。
示例:
String alpha = wholeString.substring(0,2);
String num = wholeString.substring(2);
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#substring%28int%29
答案 4 :(得分:0)
如果格式始终相同,您可以这样做:
String wholeString = "AB4578";
String alpha = wholeString.substring(0, 2);
String num = wholeString.substring(2);
答案 5 :(得分:0)
推荐字符串API。您需要使用子字符串操作。