没有空格的Java字符串拆分

时间:2011-05-10 02:59:34

标签: java string split

我正在尝试拆分一些用户输入。输入的形式为a1 b2 c3 d4。 对于每个输入(例如; a1),如何将其拆分为“a”和“1”?

我熟悉字符串拆分功能,但是我指定什么作为分隔符,或者甚至可以这样做?

感谢。

7 个答案:

答案 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+)

信息:http://www.regular-expressions.info/java.html