2012-08-17 83 views
2

我有这样的话:删除所有字符

Sams – like costco 
Jecy penny ? like sears 

在Java中我想利用这个字符串,并获得了把为:

Sams  
Jecy penny 

有什么办法,我可以删除-?后的所有字符?

+0

的方式之一是使用String类[分割法](http://docs.oracle.com/javase/1.5 .0/docs/api/java/lang/String.html#split%28java.lang.String,%20int%29)另一个使用[substring](http://docs.oracle.com/javase/1.5.0 /docs/api/java/lang/String.html#substring%28int,%20int%29)。 – kosa 2012-08-17 06:02:34

回答

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]); 
    } 
} 
+0

乔恩没有工作......对于以下内容:String text1 =“Sams Best - costco ok”;答案是一样的。我无法删除 - – 2012-08-17 06:33:51

1

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]; 

尽管上面的两个例子适用于那些只有一个“ - ”和“?”的人,你可以对多个“ - ”和“?”太

THE OUTPUT

+0

我试过\t String [] arr = text.split(“ - ”); \t String res = arr [0];和文本= Sams最好 - costco是好的。它没有工作 – 2012-08-17 06:40:00

+0

复制 - 完全粘贴我的代码? – 2012-08-17 06:51:54

+0

没有工作String text1 =“Sams Best - costco ok”; \t \t \t \t String [] arr = text1.split(“ - ”); \t \t String res = arr [0]; \t \t System.out.println(res); ===输出是Sams Best - costco ok – 2012-08-17 06:57:52

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]); 
+0

我尝试输入字符串:Sams Best - costco是好的,它不起作用 – 2012-08-17 06:40:54

+0

我检查了o/p->'Sams Best'。对你有什么期望? – 2012-08-17 06:50:37

+0

hmm。我错过了一些东西.. \t \t String text1 =“Sams Best - costco ok”; \t \t remove(text1); 并且该函数是private static void remove(String text){ \t String [] parts = text.split(“ - ”); \t System.out.println(parts [0]); \t} 了看跌期权:萨姆斯最好的 - 好市多是确定 – 2012-08-17 06:53:55

0

我假设你想要么"-""?"后删除单词"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