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

Java 如何进行不区分大小写的字符串替换,java,android,android-emulator,Java,Android,Android Emulator,嗨,朋友们,我正在创建一个应用程序。 我想在ArrayList中找到一个特定的单词,我必须替换 用另一个词来形容它。我使用了下面的代码。它区分大小写, 但我想让它不区分大小写 FillintheBlank.class: public class FillintheBlank extends Activity { static ArrayList<String> multiword=new ArrayList<String>()

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

   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

 }
  } 
fillinblank.class:
公共类fillinblank扩展活动{
静态ArrayList多字=新ArrayList();
静态ArrayList multimeans=新ArrayList();
public void setNoTitle(){
requestWindowFeature(窗口。功能\u无\u标题);
} 
浮动筛高、筛宽、筛密;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setNoTitle();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏);
DisplayMetrics DisplayMetrics=新的DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
屏幕高度=displaymetrics.heightPixels;
screenWidth=displaymetrics.widthPixels;
screendensity=displaymetrics.densityDpi;
setContentView(R.layout.fillinblanknew);
多字。添加(“radha”);
多字。添加(“RAdHA”);
多字。添加(“latha”);
多字。添加(“mammu”);
s、 o.p(“+”多字);
//输出:radha、radha、latha、mamu
add(multiword.getString().replace(radha,“sai”);
s、 o.p.(““+多重含义);
//输出:sai、RADHA、latha、mamu
}
} 

例如:无论“radha”中的字母大小写是什么,我都需要将“radha”替换为“sai”。

您可以使用string类中的
equalsIgnoreCase(string)
方法。

可以使用正则表达式。 只需在字符串前添加(?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, "");
    }
}

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

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

或:

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


org.apache.commons
commons-lang3
3.6

还有另一个StackOverflow示例:这是您的实际工作代码吗?如何在ArrayList上执行getString()?谢谢,stackoverfolw链接对我有效…是的,我尝试过。请查看我的代码一次。首先,我需要在arraylist中搜索字符串,然后我必须应用EqualSignore case(),但在上面的代码中,如何应用该方法我没有得到任何结果idea@TimothyPOP需要更换不敏感的外壳。不平等。如果我投错了否决票,我会撤销它。但是我认为这个答案是不恰当的。好吧,现在我想起来,他的答案作为一个评论可能更好。你是对的,你是对的,我不认为replace需要正则表达式,只有replaceAll和replaceFirst
StringUtils.replaceIgnoreCase(text, searchString, replacement);
StringUtils.replaceOnceIgnoreCase(text, searchString, replacement);
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.6</version>
</dependency>