次のような言葉があります。
Sams – like costco
Jecy penny ? like sears
Java では、この文字列を取得して、次のように出力したいと考えています。
Sams
Jecy penny
-
との後のすべての文字を削除する方法はあり?
ますか?
次のような言葉があります。
Sams – like costco
Jecy penny ? like sears
Java では、この文字列を取得して、次のように出力したいと考えています。
Sams
Jecy penny
-
との後のすべての文字を削除する方法はあり?
ますか?
3つのオプション:
indexOf
してからsubstring
split
して、最初の戻り値を取得します分割オプションはsplit
次のとおりです。正規表現を使用することに注意してください。
public class Test {
public static void main(String[] args) {
showFirstPart("Sams - like costco");
showFirstPart("Jecy penny ? like sears");
}
private static void showFirstPart(String text) {
String[] parts = text.split("[-?]", 2);
System.out.println("First part of " + text
+ ": " + parts[0]);
}
}
1.1。 Sams - like costco
答え:
String s = "Sams - like costco";
String[] arr = s.split("-");
String res = arr[0];
2.2。 Jecy penny ? like sears
答え:
String s = "Jecy penny ? like sears";
String[] arr = s.split("\\?");
Added \\ before ?, as ? has a special meaning
String res = arr[0];
上記の2つの例は、「-」と「?」が1つしかない場合ですが、複数の「-」と「?」に対してこれを行うことができます。それも
使用String.split()
方法
String str = "Sams – like costco";
String str1 = "Jecy penny ? like sears";
String[] arr = str.split("–");
String arr1[] = str1.split("\\?");
System.out.println(arr[0]);
System.out.println(arr1[0]);
どちらかまたは..."like"
の後の単語と次の単語を削除したいと思っています。"-"
"?"
1行で行う方法は次のとおりです。
String output = input.replaceAll( "(?i)[-?]\\s*like\\s+\\b.+?\\b", "" );
ここにいくつかのテストコードがあります:
public static void main( String[] args ) {
String input = "Sams - like costco Jecy penny ? like sears";
String output = input.replaceAll( "(?i)[-?]\\s*like\\s+\\b.+?\\b", "" );
System.out.println( output );
}
出力:
Sams Jecy penny