2017-05-29 10 views
-5

文字列s = aaa-bbb-ccc-ddd-ee-23-xyz;Javaで5つの区切り文字の後に文字列を切り詰めるには?

私は上記の文字列をaaa-bbb-ccc-ddd-eeに変換する必要があります。これは、出力では5番目の区切り文字の前にのみ単語を出力することを意味します。これを解決するのに役立つだろうか?

+0

Google検索では、http://programming.guide/java/nth-occurrence-in-string.html –

+0

が検索されました。あなたが遭遇するデリミタの数を数えます。 5つの区切り文字を数えた後、0番目のインデックスから5番目の区切り文字のインデックスにサブストリングを作成します – Flaom

+0

これは宿題のようですが、少なくとも、何か試したことがあるかどうかを詳しく説明してください。人々があなたの宿題をすることを期待しないでください。 –

答えて

0

あなたは正規表現を使用することができます。

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

です。このような

0

使用パターンと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} [^ - ] +)

関連する問題