2010-03-28 5 views
2

Comment puis-je remplacer "a     b" par "un b" dans Java ME? La méthode replace() n'accepte pas les chaînes, mais seulement les caractères. Et puisqu'un double espace contient deux caractères, je pense avoir un petit problème.Chaîne remplacer en Java ME double espace

Répondre

3

Que pensez-vous de celui-ci? J'en ai essayé un moi-même.

private String replace(String needle, String replacement, String haystack) { 
    String result = ""; 
    int index = haystack.indexOf(needle); 
    if(index==0) { 
     result = replacement+haystack.substring(needle.length()); 
     return replace(needle, replacement, result); 
    }else if(index>0) { 
     result = haystack.substring(0,index)+ replacement +haystack.substring(index+needle.length()); 
     return replace(needle, replacement, result); 
    }else { 
     return haystack; 
    } 
} 
2

Here's one function vous pouvez utiliser:

public static String replace(String _text, String _searchStr, String _replacementStr) { 
    // String buffer to store str 
    StringBuffer sb = new StringBuffer(); 

    // Search for search 
    int searchStringPos = _text.indexOf(_searchStr); 
    int startPos = 0; 
    int searchStringLength = _searchStr.length(); 

    // Iterate to add string 
    while (searchStringPos != -1) { 
     sb.append(_text.substring(startPos, searchStringPos)).append(_replacementStr); 
     startPos = searchStringPos + searchStringLength; 
     searchStringPos = _text.indexOf(_searchStr, startPos); 
    } 

    // Create string 
    sb.append(_text.substring(startPos,_text.length())); 

    return sb.toString(); 
} 
+0

Merci, j'espérais qu'il y avait une solution plus courte. Pourquoi utilisez-vous ces traits de soulignement? pour indiquer les variables sont des paramètres? – hsmit

+0

C'est une bonne norme de codage de nommer les variables différemment selon leur portée. Le code Android de Google utilise un préfixe «m» pour les variables d'instance. Symbian utilise par exemple un préfixe «i» et un préfixe «a» pour les paramètres de méthode. –