我有这样的话:
Sams – like costco
Jecy penny ? like sears
在 Java 中,我想获取这个字符串并得到输出:
Sams
Jecy penny
有什么办法可以删除-
and之后的所有字符?
吗?
我有这样的话:
Sams – like costco
Jecy penny ? like sears
在 Java 中,我想获取这个字符串并得到输出:
Sams
Jecy penny
有什么办法可以删除-
and之后的所有字符?
吗?
三个选项:
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. 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 个例子是针对只有一个“-”和“?”的,但是你可以对多个“-”和“?”执行此操作。也
使用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]);
我假设您要删除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