[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2005
    Beiträge
    40

    Question String auf Sonderzeichen überprüfen

    HI!
    Ich schon wieder!
    Hab ne Frage
    und zwar hab ich einen String und will diesen Überprüfen:
    public String strconv(HttpServletRequest request, HttpServletResponse response,
    ServletContext application, String strToConv)throws ServletException, IOException {
    StringBuffer outputbuffer = new StringBuffer();

    int strlen = 0;
    char conv;

    for (int i = 0; i <= strToConv.length(); i++) {
    if (strToConv.charAt(i) != ???

    wie kann ich jetzt strToConv.charAt(i) auf a-z A-Z 0-9
    ich hab es schon probiert mit 'a'-'z' && bzw. || 'A'-'Z'
    da kam immer und bzw. oder kann bei bool, int nicht verwendet werden

    Bei c++ ging das?!?
    Aber wie mach ich das in JAVA

    Zhx

  2. #2
    Registriert seit
    Aug 2004
    Beiträge
    923
    Zitat Zitat von Deficiency
    HI!
    Ich schon wieder!
    Hab ne Frage
    und zwar hab ich einen String und will diesen Überprüfen:
    public String strconv(HttpServletRequest request, HttpServletResponse response,
    ServletContext application, String strToConv)throws ServletException, IOException {
    StringBuffer outputbuffer = new StringBuffer();

    int strlen = 0;
    char conv;

    for (int i = 0; i <= strToConv.length(); i++) {
    if (strToConv.charAt(i) != ???

    wie kann ich jetzt strToConv.charAt(i) auf a-z A-Z 0-9
    ich hab es schon probiert mit 'a'-'z' && bzw. || 'A'-'Z'
    da kam immer und bzw. oder kann bei bool, int nicht verwendet werden

    Bei c++ ging das?!?
    Aber wie mach ich das in JAVA

    Zhx
    wie wärs mal mit nem guten javabuch?
    oder ner guten suchmaschine?

    hab mal im netz gesucht und das hier gefunden:

    Wie kann ich in einem String oder StringBuffer mehrere Zeichen
    suchen und ersetzen?

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
    Mit

    String String#replace(char,char)

    kann ich nur einzelne Zeichen suchen und mit

    StringBuffer replace(int,int,String)

    nur ersetzen aber nicht suchen.

    Lösung:

    Eine gute Hausaufgabe. Was man hier braucht, ist eine Kombination von

    int String#indexOf(String,int),
    String String#substring(int,int)

    mit einem neu aufzubauenden StringBuffer.

    bzw.

    int StringBuffer#indexOf(String,int)
    StringBuffer#replace(int,int,String)


    Die folgende Lösung ist eine unter vielen und ersetzt alle Vorkommen von
    "search" in "source" mit "replace":

    public static String replaceAll(String source, String search,
    String replace) {
    if(search.equals(replace)) {
    return source; //kann ja sein, dass wir nichts tun müssen
    }

    StringBuffer result = new StringBuffer();
    int len = search.length();
    if(len == 0) {
    return source; //verhindert Endlosschleife bei search.equals("");
    }

    int pos = 0; //position
    int nPos; //next position
    do {
    nPos = source.indexOf(search, pos);
    if(nPos != -1) { //gefunden
    result.append(source.substring(pos, nPos));
    result.append(replace);
    pos = nPos+len;
    } else { //nicht gefunden
    result.append(source.substring(pos)); //letzter abschnitt
    }
    } while(nPos!= -1);

    return result.toString();
    }

    Da sowas praktisch überall gebraucht wird, gibt es unzählige
    Bibliothek(chen) im Netz, die so etwas anbieten, z.B.

    URL:http://ostermiller.org/utils/StringHelper.java.html


    hoffe das hilft dir weiter.

    kuempi

  3. #3
    Registriert seit
    Sep 2005
    Beiträge
    40
    THX das hat geholfen!!!

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.288
    Hallo,

    noch einfacher sind org.apache.commons.lang.StringUtils - open Source versteht sich.

    mfg

    Dieter Bender


    Zitat Zitat von kuempi von stein
    wie wärs mal mit nem guten javabuch?
    oder ner guten suchmaschine?

    hab mal im netz gesucht und das hier gefunden:

    Wie kann ich in einem String oder StringBuffer mehrere Zeichen
    suchen und ersetzen?

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
    Mit

    String String#replace(char,char)

    kann ich nur einzelne Zeichen suchen und mit

    StringBuffer replace(int,int,String)

    nur ersetzen aber nicht suchen.

    Lösung:

    Eine gute Hausaufgabe. Was man hier braucht, ist eine Kombination von

    int String#indexOf(String,int),
    String String#substring(int,int)

    mit einem neu aufzubauenden StringBuffer.

    bzw.

    int StringBuffer#indexOf(String,int)
    StringBuffer#replace(int,int,String)


    Die folgende Lösung ist eine unter vielen und ersetzt alle Vorkommen von
    "search" in "source" mit "replace":

    public static String replaceAll(String source, String search,
    String replace) {
    if(search.equals(replace)) {
    return source; //kann ja sein, dass wir nichts tun müssen
    }

    StringBuffer result = new StringBuffer();
    int len = search.length();
    if(len == 0) {
    return source; //verhindert Endlosschleife bei search.equals("");
    }

    int pos = 0; //position
    int nPos; //next position
    do {
    nPos = source.indexOf(search, pos);
    if(nPos != -1) { //gefunden
    result.append(source.substring(pos, nPos));
    result.append(replace);
    pos = nPos+len;
    } else { //nicht gefunden
    result.append(source.substring(pos)); //letzter abschnitt
    }
    } while(nPos!= -1);

    return result.toString();
    }

    Da sowas praktisch überall gebraucht wird, gibt es unzählige
    Bibliothek(chen) im Netz, die so etwas anbieten, z.B.

    URL:http://ostermiller.org/utils/StringHelper.java.html


    hoffe das hilft dir weiter.

    kuempi
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Kein Zugriff über QNTC auf Win-Share
    By marmart in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 25-09-07, 15:29
  2. QNTC Zugriff auf CD Laufwerk Fehlerhaft
    By pwrdwnsys in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-11-06, 15:34
  3. Status nach Druck nich SAV, sonder Drucker auf END
    By zannaleer in forum NEWSboard Drucker
    Antworten: 6
    Letzter Beitrag: 13-09-06, 10:35
  4. ODBC - Sonderzeichen INSERT auf I5 klappt nicht
    By DrNick in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 22-02-05, 14:36
  5. CZ Sonderzeichen auf Printer über CA
    By Markus Gruebl in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 21-09-01, 09:24

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •