0

そのため、私はjava Stringメソッドに精通しておらず、これを行う簡単な方法があるかどうかわかりません。「:」で区切られた値のカップルを含む文字列があり、各カップルは別の区切り文字「、」で他のカップルから区切られています。例えば:

AA:BB,CC:DD,XX:YY,EE:FF

マッピングは「from」と「to」の値です。条件に基づいて、「from」値を取得します。たとえば、「XX」を取り上げます。この場合は「YY」の「to」値を取得します。

どうすればいいのかよくわかりません。どんな助けでもありがたいです。

ありがとう :)

4

2 に答える 2

1

文字列をマップに変換できます。

String[] items = string.split(",");
Map<String, String> map = new HashMap<String, String>();
for (String item : items) {
    String[] split = item.split(":");
    map.put(split[0], split[1]);
}

基本的に、文字列を2回分割します。まず、それをで分割して個々のキーと値のペアに分割しsplit(",")、次にこれらのペアすべてをループします。各ペアをもう一度、今回はコロンで分割し、文字列キーを文字列値にマップするKey-Valueマップに値を格納します。

次に、次のようにマップから値を読み取ることができます。

map.get(key);

たとえば、サンプルデータを使用すると次のようになります。

System.out.println(map.get("CC")); // prints "DD"
于 2012-10-27T01:14:09.807 に答える
1

これを行う方法の例を次に示します。私の例では整数を使用していますが、非常に簡単に変更できます。

import java.util.ArrayList;
import java.util.List;

class Value {
    int from;
    int to;
    Value(int from,int to){
        this.from = from;
        this.to = to;

    }
    //getter && setter
}

public class Test {
    public static void main(String[] args) {
        String input = "12:13,11:12,12:12,134:413";
        String[] values = input.split(",");
        List<Value> parsedValues = new ArrayList();
        for(String value:values){
            String[] split = value.split(":");
            parsedValues.add(new Value(new Integer(split[0]).intValue(),new Integer(split[1]).intValue()));
        }
    }
}
于 2012-10-27T01:22:29.070 に答える