如何进行不区分大小写的字符串替换

嗨朋友我正在创建一个应用程序。
我想在ArrayList找到一个特定的单词,我必须替换
用另一个词来说。 我使用下面的代码。 它区分大小写,
但我想让它工作不敏感。

  FillintheBlank.class: public class FillintheBlank extends Activity { static ArrayList multiword=new ArrayList(); static ArrayList multimeaning=new ArrayList(); 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"); sop(""+multiword); // output:radha,RADHA,latha,mamu multimeaning.add(multiword.getString().replace(radha,"sai")); sop(""+multimeaning); // output: sai,RADHA,latha,mamu } } 

例如:无论’radha’中的字母是什么,我都需要用’sai’替换’radha’。

可以使用正则表达式。 只需在字符串前添加(?i)以忽略大小写。

例如:

multiword.getString()。replaceAll(“(?i)radha”,“sai”);

您可以在字符串前面“(?i)”模式以忽略大小写。

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

上面的代码将返回“Th a FH”。

通过apache commons lang3 – v3.5或更高版本使用StringUtils(因此您不必担心正则表达式解析):

 StringUtils.replaceIgnoreCase(text, searchString, replacement); 

要么:

 StringUtils.replaceOnceIgnoreCase(text, searchString, replacement); 

如果您使用maven,请添加此依赖项(我使用的是版本3.6):

   org.apache.commons commons-lang3 3.6  

您可以使用String类中的equalsIgnoreCase(string)方法来实现您的目的。