Java最快的方式来改变字符

lac*_*cas -1 java android

      sLine = sLine.replaceAll("&&", "&"); 
      sLine = sLine.replaceAll(((char)245)+"", "?");
      sLine = sLine.replaceAll(((char)213)+"", "?");
      sLine = sLine.replaceAll(((char)361)+"", "?");
      sLine = sLine.replaceAll(((char)251)+"", "?");
Run Code Online (Sandbox Code Playgroud)

有没有办法只到这一行?这在大字符串上非常慢.

Ano*_*sse 5

考虑将字符串转换为a char[],然后手动迭代数组.

避免字符串连接,如((char)245)+"".使用字符常量.

但看起来您正在尝试手动修复字符串的编码?这是一个非常糟糕的主意.因为下周你将拥有一个ü角色的用户.然后,有人会使用货币值.然后一个西班牙语用户想要使用该¿角色.有多少replaceAll是你是否愿意购买?!?

看看如何编码/解码/重新编码字符串.

也许使用以下构造函数:

String(byte[] bytes, Charset charset) 
Run Code Online (Sandbox Code Playgroud)

并查看Java Charset类: