如何添加'。'在每个辅音串之前?

时间:2017-01-13 14:20:00

标签: java string character

我对Java很新,我在Text = "Working"; try { int val = await LongTask(); Text = "Done: " + val; } catch (Exception ex) { // Something went wrong } 中发现了一个关于从字符串中删除所有元音并在每个辅音之前添加点(。)的问题。我已经找到了如何删除所有元音,但还没有找到如何在每个辅音之前添加点。请帮帮我:)谢谢

codeforces.com

对不起,代码非常混乱,我是Java新手。

来源:String Task - codeforces.com

5 个答案:

答案 0 :(得分:3)

您可以使用capture group ()$1作为替代

1。)删除所有元音[aeiouyYAEIOU]

2。)在应用第1步后,只会留下辅音,因此,使用([a-zA-Z])捕获每个字符,并将其替换为.$1,其中.为点{{1}角色本身

注意: $1在性能方面会更有效率,因为这只会捕获字符,其中[a-zA-Z]将匹配除元音以外的任何内容意味着它也可以匹配特殊字符像([^aeiouyAEIOUY])这样的字符和数字。

@#$%^&*12346

或者匹配并添加 word = word .replaceAll("[aeiouyYAEIOU]",""); word = word.replaceAll("([a-zA-Z])", ".$1"); 特殊字符和数字

.

word = word .replaceAll("[aeiouyYAEIOU]",""); word = word.replaceAll("([^aeiouyAEIOUY])", ".$1"); :捕获所有辅音并将替换用作([^aeiouyAEIOUY]),其中.$1表示捕获的辅音

$1[^aeiouyAEIOUY]表示不在^

[]

输出:

    String s = "abcdefghijklmnopqrstuvwxyzAEIOUY";

    // replace all vowels 
    s = s.replaceAll("[aeiouyYAEIOU]","");
    s = s.replaceAll("([a-zA-z])", ".$1");
    System.out.println(s);

仅为了您的信息,您也可以在一行中执行此操作,您可以在第一个.b.c.d.f.g.h.j.k.l.m.n.p.q.r.s.t.v.w.x.z 函数的输出上应用第二个replaceAll函数

replaceAll

答案 1 :(得分:0)

此示例添加“。”在每个辅音串之前。

public void test() {
    StringBuffer result = new StringBuffer("");
    String text = "tour";
    StringBuffer b = new StringBuffer(text);
    for(int i = 0; i < b.length(); i++) {
        String substring = b.substring(i, i+1);
        if(isConsanantCharacter(substring)) {
            result.append("." + substring);
        } else {
            result.append(substring);
        }
    }
}

public boolean isConsanantCharacter(String character){
    String cons = "bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ";
    return cons.contains(character);
}

答案 2 :(得分:0)

以下是代码:

public static void main(String[] args) {

    String s = "The Boy is a good boy";
    StringBuilder newString = new StringBuilder();

    for (int i = 0; i < s.length(); i++) {
        if (!(s.charAt(i) == 'a' || s.charAt(i) == 'e' || s.charAt(i) == 'i' || s.charAt(i) == 'o'
                || s.charAt(i) == 'u' || s.charAt(i) == 'A' || s.charAt(i) == 'E' || s.charAt(i) == 'I'
                || s.charAt(i) == 'U' || s.charAt(i) == 'O' || s.charAt(i) == ' ')) {
            newString.append('.');
        }
        newString.append(s.charAt(i));
    }
    System.out.println(newString);
}

输出结果为:

.T.he .Bo.y i.s a .goo.d .bo.y

答案 3 :(得分:0)

恩,如果你可以删除所有的元音,这意味着该字符串现在只由辅音组成。 伪代码:

char[] chars=word.toCharArray;
String result;
for(int i;i<chars.length;i++){
    result=result+"."+chars[i];
}

答案 4 :(得分:0)

public class Vowels {

    public static boolean isVowel(char input) {
        return (input == 'a' || input == 'e' || input == 'i' || input == 'o'
                || input == 'u' || input == 'A' || input == 'E' || input == 'I'
                || input == 'O' || input == 'U');
    }

    public static String addDots(char input) {

        if (!isVowel(input)) {
            return ".".concat("" + input);
        } else {
            return "";
        }
    }

    public static void main(String[] args) {
        String inputString = "Hello";
        String newString = "";
        for (int i = 0; i < inputString.length(); i++) {         
            newString += addDots(inputString.charAt(i));
        }
        System.out.println("Output " + newString);

    }

}