0
私は以下のように応答文字列を持っています。これを解析してクラスを格納する必要があります。書式は以下に示される:特定の形式の文字列を解析する
- タスク名は、
- 、その後すぐ下
key:value
対を固定され、この点線-------------
続きます。多くのキー値ペアを持つことができます
以下は応答文字列です。以下は
abc-------------
Load:79008
Peak:4932152
def-------------
Load:79008
Peak:4932216
ghi-------------
Load:79008
Peak:4874588
pqr-------------
Load:79008
Peak:4874748
私のクラスである:上記のクラスで
public class NameMetrics {
private String name;
private Map<String, String> metrics;
// setters and getters
}
、他のキーと値と同じようにキーと79008
としてLoad
を持っている必要がありname
がabc
とmetrics
マップする必要があります:valueのペア。私は正規表現を使用することを考えていたが、ここで正規表現を使用できるかどうかはわからない。
private static final Pattern PATTERN = Pattern.compile("(\\S+):\\s*(\\S*)(?:\\b(?!:)|$)");
String response = restTemplate.getForObject(url, String.class);
// here response will have above string.
これを行うにはどのような方法が最適ですか?
正規表現は必要ありません。入力行を行単位で繰り返し入力してください。 – anubhava
行を読み込みます。空白行をスキップします。 'line.indexOf( ':')'が-1を返すならば、あなたは "ヘッダ"行を持っています。そうでなければ、キーと値のペアを持っていますので、 'substring()'はキーと値です。すすぎ、繰り返します。 – Andreas