web-dev-qa-db-fra.com

Supprimer tout après une partie d'une chaîne

J'ai une chaîne qui est construite en trois parties. Le mot que je veux que la chaîne soit (changements), une partie séparée (ne change pas) et la dernière partie qui change. Je veux supprimer la partie distincte et la partie finale. La partie distincte est "-", donc je me demande si il existe un moyen de tout supprimer après une partie certaint de la chaîne.

Un exemple de ce scénario serait si je voulais transformer ceci: "Débordement de pile - Un endroit pour demander des choses" dans ceci: "Débordement de pile". Toute aide est appréciée!

25
SweSnow

Par exemple, vous pourriez faire:

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

ou

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

(et ajouter une gestion d'erreur pertinente)

39
assylias

Vous pouvez utiliser ceci 

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

C’est peut-être ce que vous recherchez:

String str="Stack Overflow - A place to ask stuff";

String newStr = str.substring(0, str.indexOf("-"));
1
waqaslam

J'ai créé le programme exemple pour toutes les approches et SubString semble être le plus rapide.

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

Voici l'exemple de code de programme

            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;
1
Amit Deshpande

Cela fera ce dont vous avez besoin:

newValue = oldValue.substring(0, oldValue.indexOf("-");
0
Dan D.

vous pouvez mes utils méthode cette action ..

public static String makeTwoPart(String data, String cutAfterThisWord){
    String result = "";

    String val1 = data.substring(0, data.indexOf(cutAfterThisWord));

    String va12 = data.substring(val1.length(), data.length());

    String secondWord = va12.replace(cutAfterThisWord, "");

    Log.d("VAL_2", secondWord);

    String firstWord = data.replace(secondWord, "");

    Log.d("VAL_1", firstWord);

    result = firstWord + "\n" + secondWord;


    return result;
}`
0
Caner Yılmaz
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);
0
Kailas Kakade