イム","
、":"
および例えば"-"
クラッシュで複数のシンボルの結果を含む文字列の解析
、
入力が58,1:2-4
であれば、それは次のように生成する必要がありますが含まれているJavaでいくつかの文字を分割しようとしています出力
- Booknumber:58
- 章番号:1 本の
- 一節= [2,3,4]私はしようとしているコードである続い
、
private int getBookNumber() {
bookNumber = chapterNumber.split("[,]")[0];
return Integer.valueOf(bookNumber);
}
private int getChapterNumber() {
chapterNumber = sample.split("[:]")[0];
verseNumbers = sample.split("[:]")[1];
return Integer.valueOf(chapterNumber);
}
private List<Integer> getVerseNumbers(String bookValue) {
List<Integer> verseNumList = new ArrayList<>();
if (bookValue.contains("-")) {
//TODO parse - separated string
} else {
verseNumList.add(Integer.valueOf(bookValue));
}
return verseNumList;
}
Iが呼び出すことになる(2-4 2から4までの値であるため)次のようにそれらを順次
int chapterNumber = getChapterNumber();
int bookNumber = getBookNumber();
List<Integer> verseNumbers = getVerseNumbers(this.verseNumbers);
しかし、イムはによって引き起こさ取得:java.lang.NumberFormatException:無効INT:行で "58、1" int chapterNumber = getChapterNumber();
この文字列を解析する効率的な方法はありますか?
あなたの入力ごとにグループ化されて正規表現を使用して、それが入力と一致する場合に有効であり、あなたはあなたがマッチャ意味簡単 –
を入力を抽出することができますでしょうか? –
yea a Pattern、次に対応するMatcherを特定のStringに変換する方法については、http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.htmlを参照してください。このシーケンスは '^(\ https://regex101.com/ –