7

Hi friends I'm creating an app.
I want to find a particular word in an ArrayList and I have to replace
it with another word. I used the code below. It works case sensitive,
but I'd like to get it working case insensitive.

 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 } } 

For example: I need to replace 'radha' with 'sai' no matter what the case of the letters in 'radha' are.

4

4 Answers 4

12

Could use a regular expression. Just add (?i) before your string to ignore case.

So for example:

multiword.getString().replaceAll ( "(?i)radha", "sai");

Sign up to request clarification or add additional context in comments.

1 Comment

You're right, I don't think replace takes a regex, only replaceAll and replaceFirst
1

You can "(?i)" pattern in front of a string to ignore the case.

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, ""); } } 

The code above will return "Th a FH".

Comments

0

Use StringUtils by apache commons lang3 - v3.5 or later (so you don't have to worry about regular expression parsing):

StringUtils.replaceIgnoreCase(text, searchString, replacement); 

or:

StringUtils.replaceOnceIgnoreCase(text, searchString, replacement); 

If you use maven, add this dependency (I'm using version 3.6):

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.6</version> </dependency> 

Comments

-4

You could use equalsIgnoreCase(string) method found in String class for your purpose.

3 Comments

yes i tried.please see my code once. first i need to search in arraylist that string is there or then i have to apply that equlasignore case() butin above code how to apply that method i didnt get any idea
@TimothyP OP wants insensitive case replace. Not equals. If I am wrong in downvoting, I will undo it. But I think the answer is not proper.
Well, his answer may have been better as a comment now that I think of it. You're correct

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.