如何进行不区分大小写的字符串替换
嗨朋友我正在创建一个应用程序。
我想在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)
方法来实现您的目的。