Java-替换所有重音符号,但保留版权、商标和注册等符号


mystr="MYCOMPANY® PREMIER VISA SIGNATURE® CARD"

我尝试了以下方法,但它并没有删除。

mystr= Normalizer.normalize(mystr, Normalizer.Form.NFD)
mystr= Pattern.compile("\p{InCOMBINING_DIACRITICAL_MARKS}+").matcher(mystr).replaceAll("");

除了版权、商标和注册等字符外,有没有其他方法可以删除上面字符串中的重音字符。

expectedString = "MYCOMPANY® PREMIER VISA SIGNATURE® CARD"

您可以使用Apache Commons Lang中的StringUtils.stripAccents(string);来实现这一点。
它从字符中删除重音符号,但不会删除它,因此为了获得您想要的结果,我比较了这两个字符串,并将常用字符附加到一个新字符串中
从他们的网站下载最新版本的二进制文件,或者您可以直接从该链接下载JAR
通过IDE添加JAR库,并将其导入代码中,如图所示:

import org.apache.commons.lang3.StringUtils;
public class Solution
{
public static void main(String args[])
{
String string1 = "MYCOMPANY® PREMIER VISA SIGNATURE® CARD";
String string2 = StringUtils.stripAccents(string1);
int n = string1.length();
char[] arr1 = string1.toCharArray();
char[] arr2 = string2.toCharArray();
StringBuilder sb = new StringBuilder();
for(int t = 0; t < n; t++)
if(arr1[t] == arr2[t]) sb.append(arr2[t]);         
System.out.println(sb);
}
}

它给出输出:

MYCOMPANY® PREMIER VISA SIGNATURE® CARD

相关内容

  • 没有找到相关文章

最新更新