我正在编写一个小型JAVA程序,该程序:
我试图做的事情听起来像是“查找并替换”,但是并不相同,因此我认为清除它很重要。
无论如何,我想获取此文本,查找第一个数组中的任何字符是否与文本中的字符匹配,如果是,则将其替换为第二个字符数组中的匹配字符(根据索引)。
我将举一个例子来说明:假设我的文本(字符串)是:“ java很棒!”;我有2个数组(char []):“ absm”和“!@ * $”。
理想的结果是将“ a”更改为“!” ,“ b”到“ @”,依此类推..表示结果文本将是:
“ java很棒!” 更改为->“ j @ v @ i * @ w * o $ e!”
最有效的方法是什么?为什么?我考虑过循环文本,但后来发现效率不高。
(可以使用StringBuilder / String类)
StringBuilder sb = new StringBuilder(text);
for(int i = 0; i<text.length(); i ++)
{
for (int j = 0; j < firstCharArray.length;j++)
{
if (sb.charAt(i) == firstCharArray[j])
{
sb.setCharAt(i, secondCharArray[j]);
break;
}
}
}
这种方法是有效的,因为它使用StringBuilder来更改字符(如果使用字符串,则由于它们是不可变的,因此每次都必须创建一个新字符。)而且,它还可以最大限度地减少通过次数(1次通过文本字符串和n通过第一个数组,其中n = text.length())
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句