Zum Inhalt springen

RegExpr. Values maskieren


mOSSpOWER

Empfohlene Beiträge

Moin,

heute wieder mal ein kleines Problem, wer kann mir helfen.

1. Ich weiß, dass ich es auch selbst machen könnte, aber vielleicht

muß ich das ja gar nicht, deshalb meine Frage.

Ich möchte, dass ein Benutzer wo auch immer definieren kann, was er von

einem String entfernen möchte, z.B. der Ausgangsstring "H.H....[]..." usw. - gibt jetzt der Benutzer "." all = "true" und "[]" all = "true" an, so werden alle Zeichen entfernt mit dem Endergebnis "HH". ... leider sind auch hier Werte dabei ".[]", die Steuerzeichen in Expressionvalues sind, d.h. ich muss jedes einzelne maskieren, wenn ich java.lang.String.replace(All) verwenden möchte - so nun meine Frage, gibt es schon in Java eine vorgefertigte Methode, die genau alle diese Steuerzeichen maskiert?

Gruß

P.S. Ohne maskieren klappt es nicht (immer), so wird z.B. aus H.....o einfach ein kompletter Leerstring oder auch können Fehlermeldungen kommen "[]"

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

für alle, die mal das gleiche Problem haben und keine Standardlösung finden können:

public static String replace(String replaceWith, String replaceFrom,

    String content, boolean replaceAll, boolean ignoreCase) {

    String replace = content;

    if(!ValueUtil.isEmpty(replaceWith)

      && ValueUtil.isNotEmptyOrDefault(content)) {

      int startIndex = ignoreCase ? StringUtil.getIndexOfIgnoreCase(replace,

        replaceFrom, 0) : replace.indexOf(replaceFrom);

      int endIndex = ValueUtil.INT_TYPE_EMPTY;

      String prefix = ValueUtil.STRING_EMPTY;

      String postfix = ValueUtil.STRING_EMPTY;

      while(startIndex != -1) {

        prefix = replace.substring(0, startIndex);

        postfix = replace.substring(startIndex + replaceFrom.length());

        replace = prefix + replaceWith + postfix;

        if(!replaceAll) {

          break;

        }

        endIndex = (prefix + replaceWith).length();

        startIndex = ignoreCase ? StringUtil.getIndexOfIgnoreCase(replace,

          replaceFrom, endIndex) : replace.indexOf(replaceFrom, endIndex);

      }

    }

    return replace;

  }


und hier noch meine ältere Hilfsmethode, die innerhalb von replace benutzt wird:

public static int getIndexOfIgnoreCase(String fromString,

    String searchString, int indexStart) {

    int index = ValueUtil.INT_TYPE_EMPTY;

    if(ValueUtil.isNotEmptyOrDefault(fromString)

      && ValueUtil.isNotEmptyOrDefault(searchString)) {

      index = fromString.toUpperCase().indexOf(searchString.toUpperCase(),

        indexStart);

    }

    return index;

  }


Die ValueUtil-Variablen sind einfach Defaultwerte (MIN, null, Leerstring usw.)

Grüße und frohes schaffen :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...