当前位置: 首页 > 知识库问答 >
问题:

Java字符串。用其他字符列表替换字符列表

赵浩邈
2023-03-14

我有一个值为-f.e.:的字符串变量,这是test-str-ing\u322śżć帴

我想替换这个字符:

-óć与那些:

<代码>>、<代码>>、<代码>l、<代码>o、<代码>s、<代码>z、<代码>c、<代码>n。

这里我的意思是,如果解析器将找到f.e.:char-(在第一个列表中是第二个)应该替换为在第二个列表中处于相同位置/位置的char,在本例中是:\u

charó应替换为charo

char应替换为charn

在我的例子中,要替换的字符列表很长,在循环中对每个要替换的字符进行解析效率不高。

我知道方法replaceAll()。但它只接受一个in字符串和一个out字符串

所以我正在寻找方法,这将允许我在数组/字符串列表上工作,而不是单个字符串。

请给我一些帮助。

共有3个答案

罗学真
2023-03-14

创建静态查找表:

private static char[] substitutions = new char[65536];
static {
    // Initialize
    for (char c = 0; c < substitutions.length; c++) {
        substitutions[c] = c;
    }
    // Now add mappings.
    substitions['-'] = '_'; // Map source->target character
    ... // Add the rest
}
// LATER IN Code
char[] stringChars = inputString.toCharArray();
for (int i = 0; i < stringChars.length; i++) {
    stringChars[i] = substitutions[stringChars[i]];
}
outputString = new String(stringChars);
岑光熙
2023-03-14
    char[] out = new char[src.length()];
    for( j ...){
    inputChar = src.charAt(j);
    for (int i = 0; i < convertChars.length; i++) {
       if (inputChar == convertChars[i]) {
         inputChar = toChars[i];
       }
     }
    }
     out[j] = inputChar ;
   }
    out2 = new String(out);

从没有IDE的更大代码中提取,未经测试。循环(我希望)不会分配对象,也不会降低速度。

庄萧迟
2023-03-14

使用java.text.Normalizer分解基本字母中的重音字母加上“组合变音符号”。

String base = Normalizer.normalize(accented, Form.NFKD)
    .replaceAll("\\p{M}", "");

这将执行分解(D)规范化,然后删除标记。

仍需要一些更换件。

 类似资料:
  • 两行的一个例子是:([a,b,c],d)和([d,e],a)我想把这些行转换成([a,b,c],[d,e])和([d,e],[a,b,c]) dataframe的列名是“src”和“dst”。 我如何处理这个问题?

  • 我有一个文本包含一些我想要标记的单词,要标记的单词包含在一个列表中。问题是其中一些单词是其他单词的子字符串,但我想从列表中标记最长的可识别字符串。 例如,如果我的文本是“foo和bar不同于foo bar。”我的列表包含“foo”、“bar”和“foo bar”,结果应该是“[tag]foo[/tag]和[tag]bar[/tag]不同于[tag]foo bar[/tag]。”

  • 问题内容: 我正在尝试用多个其他单词替换字符串中的多个单词。字符串是“我有一只猫,一只狗和一只山羊”。 但是,它不会产生“我有一只狗,一只山羊和一只猫”,而是会产生“我有一只猫,一只猫和一只猫”。在JavaScript中是否可以同时用多个其他字符串替换多个字符串,以便产生正确的结果? 问题答案: 具体解决方案 您可以使用一个函数替换每个函数。 概括它 如果您要动态维护正则表达式并仅将将来的交换添加

  • 我正在尝试用多个其他单词替换字符串中的多个单词。绳子是“我有一只猫,一只狗,和一只山羊。” 然而,这并不产生“我有一只狗,一只山羊,一只猫”,而是产生“我有一只猫,一只猫,一只猫”。是否可以在JavaScript中同时用多个其他字符串替换多个字符串,从而产生正确的结果?

  • 问题内容: 有没有更短的方法可以编写以下代码? 注意,我不需要替换那些确切的值。我只是在寻找一种将5条以上的线变成少于5条线的方法 问题答案: 看起来是使用循环的好机会: 如果您不介意括号,则更快的方法是:

  • 这里是Python新手。 我有一个文档列表,还有另一个搜索词列表。我现在想迭代每个文档,并将任何搜索词的所有匹配项替换为类似