Как разбить строку в Java с вопросительными знаками, точками и восклицательными знаками - PullRequest
0 голосов
/ 13 мая 2018

Как разделить это на массив строк, используя разделители в качестве вопросительных знаков, точек и восклицательных знаков.И затем ставьте пробел перед каждым заглавным символом.После чего делайте эти символы строчными.

String one = "ATrueRebelYouAre!EveryoneWasImpressed.You'llDoWellToContinueInTheSameSpirit?";

Ответы [ 2 ]

0 голосов
/ 13 мая 2018

Для разделения по нескольким разделителям вы можете использовать оператор регулярного выражения ИЛИ:

String[] tokens = one.split("\\?|\\.|\\!");

Чтобы поставить пробел перед каждым прописным регистром, который вы можете сделать:

String two = "";
for (int i = 0; i < tokens.length; i++) {
    String phrase = tokens[i];
    String outputString = "";
    for (int k = 0; k < phrase.length(); k++) {
        char c = phrase.charAt(k);
        outputString += Character.isUpperCase(c) ? " " + c : c;
    }
two += outputString + " ";
}
two = two.replaceAll("\\s+", " ");

.следующее:

A True Rebel You Are Everyone Was Impressed You'll Do Well To Continue In The Same Spirit

Но вы также можете сделать что-то вроде этого:

String two = "";
for (int k = 0; k < one.length(); k++) {
    char c = one.charAt(k);
    two += Character.isUpperCase(c) ? " " + c : c;
}
two = two.replaceAll("\\s+", " ");
System.out.println(two);

, который напечатает это:

A True Rebel You Are! Everyone Was Impressed. You'll Do Well To Continue In The Same Spirit?
0 голосов
/ 13 мая 2018

Сделал это!

    String one = "ATrueRebelYouAre!EveryoneWasImpressed.You'llDoWellToContinueInTheSameSpirit?";

    String oneWithSpaces = one.replace("!","! ").replace("?","? ").replace(".",". ");
    String[] splitedWithDelimeters = oneWithSpaces.split(" ");


    for (int j = 0; j < splitedWithDelimeters.length; j++) {

        String[] str = splitedWithDelimeters[j].split("(?=[A-Z])");



        for (int i = 0; i < str.length; i++) {
            if (i == 0) {
                System.out.print(str[i] + " ");
            } else if (i > 0) {
                System.out.print(str[i].toLowerCase() + " ");
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...