Java replaceall正则表达式问题

马库斯·威伦(Marcus Wilen)

我正在尝试向每个辅音添加字母,但我确实遇到的问题是我无法弄清楚应该为小写字母和大写字母添加不同的字母。

我可以为此使用双正则表达式吗?在那种情况下,怎么办?

    import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
//      skapar en scanner
        Scanner sc = new Scanner(System.in);
        System.out.print("Skriv en rad text: ");
//      tar användarens input och översätter den till rövarspråket.
        String input = sc.nextLine();   
        System.out.println(input.replaceAll("([bcdfghjklmnpqrstvwxz])", "$1o$1"));
    }
}
Xolve

我认为您的问题是一个较大程序的摘录。

import java.util.Scanner;

public class ScratchJava {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Skriv en rad text: ");
        String input = sc.nextLine();
        String intermediate = input.replaceAll("([bcdfghjklmnpqrstvwxz])", "$1o$1");
        System.out.println(intermediate.replaceAll("([BCDFGHJKLMNPQRSTVWXZ])", "$1X$1"));
    }
}

您可以分两次替换一次,一次替换为小写,另一次替换为大写。

我在标准库中找不到一种方法,该方法可以根据匹配条件在同一遍中进行替换,尽管对于大输入而言这会更快。如果遇到性能问题,请考虑自己写一个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章