まあ、このような文字列があります。 "... 1name:john、2name:lice、3name:mike ..."私はその部分文字列 "1name:john"を出力したい。文字列内の位置は固定されていません。私はまた、部分文字列のメソッドを使用しますが、それを取得することはできません。あなたは私に助けを与えることができます。Javaの文字列から部分文字列を取り出す方法
ありがとうございました。
まあ、このような文字列があります。 "... 1name:john、2name:lice、3name:mike ..."私はその部分文字列 "1name:john"を出力したい。文字列内の位置は固定されていません。私はまた、部分文字列のメソッドを使用しますが、それを取得することはできません。あなたは私に助けを与えることができます。Javaの文字列から部分文字列を取り出す方法
ありがとうございました。
String s = str.split(",")[n].trim();
私は、位置がランダムである場合にはマップを作るお勧め:
Map<Integer, String> m = new HashMap<Integer, String>();
for (String s : str.split(",")) {
s = s.trim();
int keyvalstart = -1;
for (int i = 0; i < s.length(); i++) {
if (!Character.isDigit(i)) {
keyvalstart = i;
break;
}
}
if (keyvalstart == -1) continue;
String s_id = s.substring(0, keyvalstart - 1);
String keyvals = s.substring(keyvalstart);
int id = Integer.parseInt(s_id);
m.put(id, keyvals);
}
マップは、このようにそれぞれの値を文字列に人物IDのリストが含まれます。あなただけのマップの値要素として名を保存したい場合:
Map<Integer, String> m = new HashMap<Integer, String>();
for (String s : str.split(",")) {
s = s.trim();
int keyvalstart = -1;
for (int i = 0; i < s.length(); i++) {
if (!Character.isDigit(i)) {
keyvalstart = i;
break;
}
}
if (keyvalstart == -1) continue;
String s_id = s.substring(0, keyvalstart - 1);
int id = Integer.parseInt(s_id);
String keyvals = s.substring(keyvalstart);
int valstart = keyvals.indexOf("name: ") + "name: ".length();
String name = keyvals.substring(valstart);
m.put(id, name);
}
あなたはより多くのデータを保存したい場合は、キー=値のペアのための第二の例ではStringTokenizerを使用する方が簡単だろうが、私あなたの区切り文字が何であるか分からない。また、オブジェクトをマップの値として格納して、情報を格納する必要があります。
thx、しかし私たちはどのようにnを決めることができますか?その位置は不明であるため – JavaMobile
String s = "1name: john, 2name: lice, 3name: mike";
String[] names = s.split(", "); // comma and space
for(String name : names){
System.out.println(name);
}
Chris Dennettとhilalに感謝します。私はあなたの助けをしました。 – JavaMobile
あなたは答えとして私たちの1人を受け入れるべきです:) –