简体   繁体   English

在Java算法中分割字符串

[英]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 我需要挑选keyarea的值,并将它们转换为整数数组..例如

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM