Ignore case on highlight....

  • 2 Antworten
  • Neuester Beitrag
Diskutiere Ignore case on highlight.... im Android App Entwicklung im Bereich Betriebssysteme & Apps.
U

Unicate

Erfahrenes Mitglied
Nocheinmal der Selbe Fall wie hier.
Das ersetzen funktioniert hervorragend allerdings mit einem Nachteil.
Hier einmal ein mein Code:

PHP:
ContactMatch match = (ContactMatch) m;
if (match.getFullname().toLowerCase().contains(_currentSearchString.toLowerCase())) {
    match.setHtmlName(match.getFullname().replaceAll(_currentSearchString, "<b>" + _currentSearchString + "</b>"));
    addMatch(match);
}
Wenn ich nun nach "pat" suche würde der Kontakt "Patrick" zwar mit angezeigt aber nicht Dick dargestellt werden.

Gibt es da schon was einfaches oder muss ich das selber coden?
 
Bobert

Bobert

Fortgeschrittenes Mitglied
Hi

ich würde es so machen:

PHP:
String _currentSearchString = "Pat";
String ret = ""; 
String fullName = "Patrik";
        
if (fullName.toLowerCase().contains(_currentSearchString.toLowerCase())) {
    for (String e : fullName.split(" ") ) {
        ret += e.toLowerCase().contains(_currentSearchString.toLowerCase()) ? "<b>"+ e + "</b>" : e;  
    }            
}
Gruß Bobert
 
Zuletzt bearbeitet:
U

Unicate

Erfahrenes Mitglied
Naja bei deiner Variante finde ich aber immer noch nicht den "Patrik" wenn ich "pat" klein schreibe.

Hier meine funktionierende Variante:

PHP:
if (match.getFullname().toLowerCase().contains(_currentSearchString.toLowerCase())) {
    int start = match.getFullname().toLowerCase().indexOf(_currentSearchString.toLowerCase());
    String replace = match.getFullname().substring(start, start+_currentSearchString.length());
    match.setHtmlName(
            match.getFullname().replaceAll(
                    replace, 
                    "<b>"+replace+"</b>"
            )
    );                    
    addMatch(match);
}
 
Zuletzt bearbeitet: