2

次のような言葉があります。

Sams – like costco
Jecy penny ? like sears

Java では、この文字列を取得して、次のように出力したいと考えています。

Sams 
Jecy penny 

-との後のすべての文字を削除する方法はあり?ますか?

4

4 に答える 4

6

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]);
    }
}
于 2012-08-17T06:03:03.017 に答える
2

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つしかない場合ですが、複数の「-」と「?」に対してこれを行うことができます。それも

出力

于 2012-08-17T06:04:52.043 に答える
0

使用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]);
于 2012-08-17T06:06:44.410 に答える
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 
于 2012-08-17T06:07:13.360 に答える