2

我有这样的话:

Sams – like costco
Jecy penny ? like sears

在 Java 中,我想获取这个字符串并得到输出:

Sams 
Jecy penny 

有什么办法可以删除-and之后的所有字符?吗?

4

4 回答 4

6

三个选项:

  • 使用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. Sams - like costco

回答:

String s = "Sams - like costco";

String[] arr = s.split("-");

String res = arr[0];

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 个例子是针对只有一个“-”和“?”的,但是你可以对多个“-”和“?”执行此操作。也

输出

于 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

我假设您要删除or"like"之后的单词和以下单词..."-""?"

以下是您如何在一行中执行此操作:

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 回答