我正在尝试拆分一些用户输入。输入的形式为a1 b2 c3 d4。 对于每个输入(例如; a1),如何将其拆分为“a”和“1”?
我熟悉字符串拆分功能,但是我指定什么作为分隔符,或者甚至可以这样做?
感谢。
答案 0 :(得分:2)
您可以使用String#substring()
String a1 = "a1"
String firstLetterStr = a1.substring(0,1);
String secondLetterStr = a1.substirng(1,a1.length());
类似地,
String c31 = "c31"
String firstLetterStr = c31.substring(0,1);
String secondLetterStr = c31.substirng(1,c31.length());
答案 1 :(得分:2)
如果你想一般地拆分字符串(而不是试图按照其他答案计算字符数),你仍然可以使用String.split(),但你必须使用regular expressions。 (注意:当你有像a1,a2,aaa333等字符串时,这个答案会有效。)
String ALPHA = "\p{Alpha}";
String NUMERIC = "\d";
String test1 = "a1";
String test2 = "aa22";
ArrayList<String> alpha = new ArrayList();
ArrayList<String> numeric = new ArrayList();
alpha.add(test1.split(ALPHA));
numeric.add(test1.split(NUMERIC));
alpha.add(test2.split(ALPHA));
numeric.add(test2.split(NUMERIC));
此时,alpha数组将包含字符串的alpha部分,数字数组将包含数字部分。 (注意:我实际上并没有编译它来测试它是否可行,但它应该给你基本的想法。)
答案 2 :(得分:2)
这实际上取决于你以后如何使用数据,但除了split("")
或通过索引访问单个字符之外,另一种分割成单个字符的方法是toCharArray()
- 这只会破坏将字符串转换为字符数组......
答案 3 :(得分:1)
是的,您可以使用split("");
答案 4 :(得分:1)
使用split(" ")
将用户输入拆分为单个令牌后,可以使用split("")
将每个令牌拆分为字符(使用空字符串作为分隔符)。
答案 5 :(得分:0)
将空格拆分为一系列字符串,然后使用String.charAt(0)
和String.charAt(1)
答案 6 :(得分:0)
我建议只在三个字符中迭代字符。
for(int i = 0; i < str.length(); i += 3) {
char theLetter = str.charAt(i);
char theNumber = str.charAt(i + 1);
// Do something
}
编辑:如果它可以是多个字母或数字,请使用正则表达式:
([a-z]+)(\d+)