Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java字符串无空格拆分_Java_String_Split - Fatal编程技术网

Java字符串无空格拆分

Java字符串无空格拆分,java,string,split,Java,String,Split,我正在尝试拆分一些用户输入。输入的格式为a1 b2 c3 d4。 对于每个输入(如a1),如何将其拆分为“a”和“1” 我熟悉stringsplit函数,但是我应该指定什么作为分隔符,或者这是可能的吗 谢谢。将空格分割成一个字符串数组,然后使用String.charAt(0)和String.charAt(1)将字符分成三个循环 for(int i = 0; i < str.length(); i += 3) { char theLetter = str.charAt(i);

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

我熟悉stringsplit函数,但是我应该指定什么作为分隔符,或者这是可能的吗


谢谢。

将空格分割成一个字符串数组,然后使用
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
}
信息:

您可以使用

同样地

String c31 = "c31"
String firstLetterStr = c31.substring(0,1);
String secondLetterStr = c31.substirng(1,c31.length());

是的,这是可能的,您可以使用
split(“”)

使用
split(“”
)将用户输入拆分为单个标记后,您可以使用
split(“”
)将每个标记拆分为字符(使用空字符串作为分隔符)。

如果您希望按常规拆分字符串(而不是尝试按其他答案计数字符),您仍然可以使用String.split(),但必须利用。(注意:当您有a1、a2、aaa333等字符串时,此答案有效。)

String ALPHA=“\p{ALPHA}”;
字符串NUMERIC=“\d”;
字符串test1=“a1”;
字符串test2=“aa22”;
ArrayList alpha=新的ArrayList();
ArrayList numeric=新的ArrayList();
alpha.add(test1.split(alpha));
numeric.add(test1.split(numeric));
alpha.add(test2.split(alpha));
numeric.add(test2.split(numeric));

此时,字母数组将包含字符串的字母部分,而数字数组将包含数字部分。(注意:我编译这篇文章并不是为了测试它是否有效,但它应该给你一个基本的想法。)

这真的取决于你以后如何使用数据,但是除了
split(“”)
或通过索引访问单个字符外,另一种拆分为单个字符的方法是
tocharray()
——它只是将字符串拆分成一个字符数组…

我想是1个字母/1个数字的组合。还是有可能的,谢谢。它只适用于1个字母1个数字的组合。如果他选择“aa31”或类似的东西,它将不起作用。我不知道这是否可能,但我想我会指出它。@JasCav:当然不会。但是让OP来说这样的话。我已经犯了一个错误,根据一个类似的评论编辑了原始问题——不是来自OP.@Adeel-好的观点。有时,根据开发人员的需要,使用简单的答案实际上更好。有时我必须小心,不要过度设计解决方案。“\p{Alpha}”给了我一个错误,说“无效的转义序列”。@Triple777er-现在试试“[a-zA-Z]”,而不是“\p{Alpha}”。非常感谢Jas,我现在对如何做有了一个基本的想法。@Triple77er-没问题。如果这对您有所帮助,我将非常感谢您的接受。:-)谢谢
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 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));