[英]split a string in java algorithm
I have the below string : 我有以下字符串:
FIELD,KEY,0,AREA,2,3,4
I need to pick out the values of key
and area
and convert them to integer array .. eg 我需要挑选
key
和area
的值,并将它们转换为整数数组..例如
key = {0};
area = {2,3,4}
How could I achieve this? 我怎样才能做到这一点?
Simply: 只是:
String input = "FIELD,KEY,0,AREA,2,3,4";
String key = input.split(",")[1]; //gets "KEY"
String keyValue = input.split(",")[2]; //gets "0"
As a homework, I'm leaving you the task to find the expression that gets "AREA"
. 作为一项家庭作业,我要给您留下寻找得到
"AREA"
的表达式的任务。
You can use #indexOf
and #split
to do this as I guess your format of String
is like this 您可以使用
#indexOf
和#split
来执行此操作,因为我猜您的String
格式如下所示
FIELD,KEY,key1,key2,ke3...,AREA,area1,area2,area3...
String input = "FIELD,KEY,0,AREA,2,3,4";
int indexOfKEY=input.indexOf("KEY");
int indexOfAREA=input.indexOf("AREA");
String key[]=input.substring(indexOfKEY+4,indexOfAREA-1).split(",");
String area[]=input.substring(indexOfAREA+5).split(",");
How about something like that: 这样的事情怎么样:
static Map<String,List<Integer>> parse(String input) {
Map<String,List<Integer>> result = new HashMap<String,List<Integer>>();
String[] items = input.split(",");
int i = 0;
while (i < items.length) {
String name = items[i++];
List<Integer> list = new ArrayList<Integer>();
while (i < items.length && items[i].matches("^[0-9]+$")) {
list.add(Integer.valueOf(items[i++]));
}
result.put(name,list);
}
return result;
}
public static void main(String[] args) {
Map<String,List<Integer>> map = parse("FIELD,KEY,0,AREA,2,3,4");
System.out.println(map.get("KEY"));
System.out.println(map.get("AREA"));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.