【发布时间】:2011-05-10 02:59:33
【问题描述】:
我正在尝试拆分一些用户输入。输入的形式为 a1 b2 c3 d4。 对于每个输入(例如 a1),我如何将其拆分为“a”和“1”?
我对字符串拆分功能很熟悉,但是我应该指定什么作为分隔符,或者这甚至可能吗?
谢谢。
【问题讨论】:
我正在尝试拆分一些用户输入。输入的形式为 a1 b2 c3 d4。 对于每个输入(例如 a1),我如何将其拆分为“a”和“1”?
我对字符串拆分功能很熟悉,但是我应该指定什么作为分隔符,或者这甚至可能吗?
谢谢。
【问题讨论】:
你可以使用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());
【讨论】:
如果您想一般地拆分字符串(而不是尝试根据其他答案计算字符数),您仍然可以使用 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 部分,而数字数组将包含数字部分。 (注意:我实际上并没有编译它来测试它是否可以工作,但它应该给你基本的想法。)
【讨论】:
这真的取决于你之后将如何使用数据,但除了split("") 或通过索引访问单个字符之外,另一种拆分为单个字符的方法是toCharArray()——它只是将字符串分解为字符数组...
【讨论】:
是的,有可能,你可以使用split("");
【讨论】:
使用split(" ") 将用户输入拆分为单个标记后,您可以使用split("") 将每个标记拆分为字符(使用空字符串作为分隔符)。
【讨论】:
将空格分割成一个字符串数组,然后用String.charAt(0) 和String.charAt(1) 拉出单个字符
【讨论】:
我建议只迭代三个字符。
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+)
【讨论】: