2013-03-25 20 views
5

Hallo Freunde Ich erstelle eine App.
Ich möchte ein bestimmtes Wort in einem ArrayList finden und ich muss
es mit einem anderen Wort ersetzen. Ich habe den folgenden Code verwendet. Es funktioniert Groß-und Kleinschreibung,
aber ich möchte es funktioniert nicht Groß-und Kleinschreibung.Wie Sie eine Zeichenfolge ohne Berücksichtigung der Groß-/Kleinschreibung beachten

FillintheBlank.class: 

      public class FillintheBlank extends Activity { 
     static ArrayList<String> multiword=new ArrayList<String>(); 

static ArrayList<String> multimeaning=new ArrayList<String>(); 


public void setNoTitle() { 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
} 
float screenHeight,screenWidth,screendensity; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setNoTitle(); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    DisplayMetrics displaymetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
    screenHeight = displaymetrics.heightPixels; 
    screenWidth = displaymetrics.widthPixels; 
    screendensity = displaymetrics.densityDpi; 
    setContentView(R.layout.fillinblanknew); 

      multiword.add("radha"); 
      multiword.add("RAdHA"); 
       multiword.add("latha"); 
       multiword.add("mammu"); 

       s.o.p(""+multiword); 
      // output:radha,RADHA,latha,mamu 

      multimeaning.add(multiword.getString().replace(radha,"sai")); 
     s.o.p(""+multimeaning); 
    // output: sai,RADHA,latha,mamu 

} 
    } 

Zum Beispiel: Ich brauche ‚Radha‘ mit ‚sai‘ egal zu ersetzen, was der Fall der Buchstaben in ‚Radha‘ ist.

+0

http: // jelaniharri s.com/2009/case-insensitive-replaceall-in-java/ –

+0

Und ein weiteres Beispiel für StackOverflow: http://stackoverflow.com/questions/5054995/how-to-replace-case-insensitive-literal-substrings-in -java – TimothyP

+0

Ist das Ihr tatsächlicher Arbeitscode? Wie machst du eine getString() auf einer ArrayList? –

Antwort

9

Konnte einen regulären Ausdruck verwenden. Fügen Sie einfach (? I) vor Ihrer Zeichenfolge hinzu, um Groß- und Kleinschreibung zu ignorieren. .

So zum Beispiel:

multiword.getString() replaceAll ("? (I) Radha", "sai");

+0

Sory es funktioniert nicht – radha

+0

thankyou.ur Code funktioniert auch, aber nur Replaceall() .. – radha

+2

Sie haben Recht, ich glaube nicht, dass ersetzen eine Regex, nur replaceAll und replaceFirst –

-3

Sie könnten equalsIgnoreCase(string) Methode in String-Klasse für Ihren Zweck verwenden.

+0

ja, ich versuchte.Klicken Sie bitte meinen Code einmal. zuerst muss ich in arraylist suchen, dass Schnur dort ist, oder dann muss ich diesen eqlasignore Fall anwenden() butin über Code, wie man diese Methode anwendet, die ich keine Idee erhielt – radha

+0

Es gab keinen Grund, diese Antwort downvote ... – TimothyP

+1

@TimothyP OP will unempfindlichen Fall ersetzen. Nicht gleich. Wenn ich falsch im Downvoting bin, werde ich es rückgängig machen. Aber ich denke, die Antwort ist nicht richtig. –

1

Sie können "(? I)" Muster vor einer Zeichenfolge, um den Fall zu ignorieren.

public class StringReplace { 

    public static void main(String[] args) { 
     System.out.println(replaceString("This is a FISH", "IS")); 
    } 

    public static String replaceString(String first, String second) { 
      return first.replaceAll("(?i)"+ second, ""); 
    } 
} 

Der obige Code gibt "Th a FH" zurück.

0

Verwenden StringUtils von Apache Commons LANG3 - v3.5 oder später (so müssen Sie nicht über reguläre Ausdrücke Parsing Sorge):

StringUtils.replaceIgnoreCase(text, searchString, replacement); 

oder:

StringUtils.replaceOnceIgnoreCase(text, searchString, replacement); 

Wenn Verwenden Sie Maven, fügen Sie diese Abhängigkeit hinzu (ich verwende Version 3.6):

Verwandte Themen