文字列s = aaa-bbb-ccc-ddd-ee-23-xyz;Javaで5つの区切り文字の後に文字列を切り詰めるには?
私は上記の文字列をaaa-bbb-ccc-ddd-eeに変換する必要があります。これは、出力では5番目の区切り文字の前にのみ単語を出力することを意味します。これを解決するのに役立つだろうか?
文字列s = aaa-bbb-ccc-ddd-ee-23-xyz;Javaで5つの区切り文字の後に文字列を切り詰めるには?
私は上記の文字列をaaa-bbb-ccc-ddd-eeに変換する必要があります。これは、出力では5番目の区切り文字の前にのみ単語を出力することを意味します。これを解決するのに役立つだろうか?
あなたは正規表現を使用することができます。
String s = "aaa-bbb-ccc-ddd-ee-23-xyz";
Pattern p = Pattern.compile("^\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w+");
Matcher matcher = p.matcher(s);
matcher.find();
System.out.println(matcher.group(0));
出力はあなただけの文字が複数ある場合は、すべての文字が、delemiterをつかむ[^\\-]
と\\w
を置き換えることができaaa-bbb-ccc-ddd-ee
です。このような
使用パターンとMatcherの:。
String s = "aaa-bbb-ccc-ddd-ee-23-xyz";
Pattern pattern = Pattern.compile("^((.+?-){4}[^-]+).*$");
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
s = matcher.group(1);
}
* - すべてのシンボルを検索します。 ? - ' - '
{4} - あなたの結果の文字列に ' - '(。?* - - )の記号で終わる検索文字列怠惰な仕事
ための4倍
を[^ - ] + - ' - 'なしで文字を検索した後に
。* - あなたの後の別の文字
matcher.group(1) - 最初のグループを返します。これは((+ +) - ){4} [^ - ] +)
Google検索では、http://programming.guide/java/nth-occurrence-in-string.html –
が検索されました。あなたが遭遇するデリミタの数を数えます。 5つの区切り文字を数えた後、0番目のインデックスから5番目の区切り文字のインデックスにサブストリングを作成します – Flaom
これは宿題のようですが、少なくとも、何か試したことがあるかどうかを詳しく説明してください。人々があなたの宿題をすることを期待しないでください。 –