删除部分字符串后的所有内容

我有一个由三部分组成的字符串。 我希望字符串是(改变),分离部分(不改变)和最后改变的部分。 我想删除分离部分和结束部分。 分离部分是“ – ”所以我想知道的是,如果有一种方法可以在字符串的某个部分之后删除所有内容。

这种情况的一个例子是,如果我想把这个:“Stack Overflow – 一个问东西的地方”:“Stack Overflow”。 任何帮助表示赞赏!

    例如,你可以这样做:

    String result = input.split("-")[0]; 

    要么

     String result = input.substring(0, input.indexOf("-")); 

    (并添加相关的error handling)

    apache commons StringUtils提供了substringBefore方法

    StringUtils.substringBefore("Stack Overflow - A place to ask stuff", " - ")

    你可以用它

     String substr = mysourcestring.substring(0,mysourcestring.indexOf("-")); 

    也许这就是你要找的东西:

     String str="Stack Overflow - A place to ask stuff"; String newStr = str.substring(0, str.indexOf("-")); 

    我为所有的SubString创建了Sample程序,而SubString似乎是最快的。

     Using builder : 54 Using Split : 252 Using Substring : 10 

    以下是示例程序代码

      for (int count = 0; count < 1000; count++) { // For JIT } long start = System.nanoTime(); //Builder StringBuilder builder = new StringBuilder( "Stack Overflow - A place to ask stuff"); builder.delete(builder.indexOf("-"), builder.length()); System.out.println("Using builder : " + (System.nanoTime() - start) / 1000); start = System.nanoTime(); //Split String string = "Stack Overflow - A place to ask stuff"; string.split("-"); System.out.println("Using Split : " + (System.nanoTime() - start) / 1000); //SubString start = System.nanoTime(); String string1 = "Stack Overflow - A place to ask stuff"; string1.substring(0, string1.indexOf("-")); System.out.println("Using Substring : " + (System.nanoTime() - start) / 1000); return null; 

    这将满足您的需求:

     newValue = oldValue.substring(0, oldValue.indexOf("-"); 
     String line = "deltaasm:/u01/app/oracle/product/11.2.0/dbhome_1:N # line addred by agent"; String rep = "deltaasm:"; String after = ""; String pre = ":N"; String aft = ""; String result = line.replaceAll(rep, after); String finalresult = result.replaceAll(pre, aft); System.out.println("Result***************" + finalresult); String str = "deltaasm:/u01/app/oracle/product/11.2.0/dbhome_1:N # line addred by agent"; String newStr = str.substring(0, str.indexOf("#")); System.out.println("======" + newStr);