【发布时间】:2017-04-10 18:17:24
【问题描述】:
假设我从扫描仪得到以下输入:"5B1 2B2 9B3 1R4 3R5 8R6 10R7"
我希望将数据保存在类似这样的位置:
array[0] = {5,B,1}
array[1] = {2,B,2}
注意:我需要将字符左侧的数字保存为一个整体。
示例:我需要将10R7 保存为@987654324 @ 而不是{1,0,R,7}
使用这个:
String input = scanner.nextLine();
String[] nodes = input.split(" ");
我能够实现包含 {5B1,3B2} 等的数组。
编辑:
我尝试了这种方法(WORKS):
String[][] aa = new String[nodes.length][];
for(int i =0; i<nodes.length; i++ ){
aa[i] = nodes[i].split("((?<=[a-zA-Z])(?=[0-9]))|((?<=[0-9])(?=[a-zA-Z]))");
}
如果您立即打印,就会出现这种情况:
[Ljava.lang.String;@55f96302
[Ljava.lang.String;@3d4eac69
[Ljava.lang.String;@42a57993
[Ljava.lang.String;@75b84c92
[Ljava.lang.String;@6bc7c054
[Ljava.lang.String;@232204a1
[Ljava.lang.String;@4aa298b7
仅当我尝试使用以下方式打印时才会出现上述问题:
System.out.println(aa[i]);
还有另一种打印方式,但我不需要打印。
【问题讨论】:
-
char 一次只占用一个字符。
-
你尝试了什么?
-
使用
split(" ")加空格然后使用split("")不加空格,你将得到你的char 数组