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

时间:2013-03-25 10:56:23

标签: java android android-emulator

嗨朋友我正在创建一个应用程序 我想在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

 }
  } 

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

4 个答案:

答案 0 :(得分:10)

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

例如:

  

multiword.getString()。replaceAll(&#34;(?i)radha&#34;,&#34; sai&#34;);

答案 1 :(得分:1)

你可以在字符串前面“(?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”。

答案 2 :(得分:0)

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

StringUtils.replaceIgnoreCase(text, searchString, replacement);

或:

StringUtils.replaceOnceIgnoreCase(text, searchString, replacement);

如果您使用maven,请添加此依赖项(我使用的是版本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>

答案 3 :(得分:-4)

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