我想要分割一些用户输入。输入的格式为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());
具体取决于之后如何使用数据,但除了使用split("")
或通过索引访问单个字符外,另一种将字符串拆分为单个字符的方式是使用toCharArray()
--它只是将字符串分解为字符数组...
如果你想通用地分割字符串(而不是尝试按其他答案计算字符数),仍然可以使用String.split(),但必须利用正则表达式。(注意:当你有类似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数组将包含字符串的字母部分,numeric数组将包含数字部分。(注意:我没有实际编译测试它是否能正常工作,但它应该能给你基本的想法。)
是的,这是可能的,你可以使用 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+)