2012-08-17 112 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