Как прописать каждую букву в моих предложениях? (На Java) - PullRequest
0 голосов
/ 27 октября 2019

Сначала я хочу указать количество предложений, которые пользователь хотел оставить, и когда его запись заканчивается, мои коды начинают использовать заглавные буквы в каждом слове (в Java).

import java.util.Scanner;

public class India {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        num = num + 1;
        String[] array = new String[num];
        for (int i = 0; i < num; i++) 
        {
            array[i] = input.nextLine();
        }
        for (int j = 0; j < num; j++) 
        {
            StringBuilder a = new StringBuilder();
            for (String s1 : array[j].split(" ")) 
            {
                char[] str = s1.toLowerCase().toCharArray();
                if (str.length > 0) 
                {
                    str[0] = Character.toUpperCase(str[0]);
                    a.append(str);
                    a.append(' ');
                }
                System.out.println(a);
            }
        }
        input.close();
    }
}

И новая проблема

Ответы [ 2 ]

0 голосов
/ 27 октября 2019

если после печати ввод не требуется, программа может быть значительно сокращена

Scanner input = new Scanner( System.in );
int num = input.nextInt();
input.nextLine();
for( int j = 0; j < num; j++ ) {
  Arrays.asList( input.nextLine().split( "(?<= )" ) ).forEach( s -> {
    System.out.print( StringUtils.capitalize( s ) );
  } );
  System.out.println();
}
input.close();

изменения в исходной программе:- String[] array опущен- внутренний цикл for заменяется на forEach лямбду- аргумент для split теперь равен "(?<= )", который сохраняет пробелы в конце каждой разделенной строки

после input.nextInt() ожидающего \n должен быть прочитан следующим input.nextLine()

0 голосов
/ 27 октября 2019

Вы можете сделать вашу программу немного проще, используя класс Apache StringUtils. Внутренний цикл в вашей программе можно заменить одним вкладышем. Посмотрите, помогает ли ut

Примеры

StringUtils.capitalize(null)  = null
StringUtils.capitalize("")    = ""
StringUtils.capitalize("cat") = "Cat"
StringUtils.capitalize("cAt") = "CAt"
StringUtils.capitalize("'cat'") = "'cat'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...