해커랭크 #12 | 문자열 소개 | 🇧🇷

Este exercício pede que, a partir da entrada de duas strings, o 콘솔 복원:
  • O número de caracteres através do tamanho da string (길이)
  • No para que as strings estejam na ordem alfabética correta ou Yes se estiverem na ordem alfabética incorreta ou equale*.
  • A concatenação das strings, sendo que a primira letra de cada palavra deve ser impressa em maiúsculo.

  • O passo para resolução desse problema é:
  • Declarar uma variávelScanner
  • 에스카니아 a String A e a String B
  • Somar o tamanho da String A com o Tamanho da String BSystem.out.println(A.length() + B.length());
  • Usar o método .compareTo() para comparar a ordem alfabética da String A com a String B

  • 인터페이스 java.lang.Comparable 및 .compareTo()



    O método .compareTo() faz parte da interface Comparable eorganiza, por default, em ordem alfanumérica. Isso Significa que Organize em ordem crescente (para números) ou alfabética (para letras).
    Veja o 예:

    public CPF implements Comparable {
    
        private int numero;
    
        public int compareTo (CPF novoCPF){
    
          if (this.numero < outroCPF.numero) {
            return -1;
        }
    
          if (this.numero > outroCPF.numero) {
            return 1;
        }
    
          if (this.numero == outroCPF.numero) {
            return 0;
        }
    }
    


    Primeiro if , o .compareTo() retorna um número negativo indicando que o this deve vir antes de outroCPF. O exemplo usa -1 para ilustrar, mas poderia ser qualquer numero negativo.
    No segundo if , o .compareTo() retorna um numero positivo para que o this venha depois do outroCPF. O exemplo usa 1 para ilustrar, mas poderia ser qualquer número positivo.
    No terceiro if, se ambos foram iguais, o retorno será 0 e a ordem será mantida. Neste caso, o 기본값은 0입니다.

    =========

    Por fim, a última etapa é a de Organizar as strings de forma que a Primeira letra de cada palavra fique em maiúsculo. Para isso, usamos o método substring(), da classe String.
    O método substring() retorna outra string, derivada da primira string.
    Aqui alguns의 예:

     "unhappy".substring(2) returns "happy"
     "Harbison".substring(3) returns "bison"
     "emptiness".substring(9) returns "" (an empty string)
    


    Quando passamos dois parametros na substring(예: .substring(0,10) ), 의미 있는 que estamos selecionando aquela quantidade de caracteres. 예:

    String stringExemplo = "JavaScript e Java";
    String resultado = stringExemplo.substring(0,10)
    System.out.println(resultado);
    
    Console:
    JavaScript
    


    Isso porque a palavra JavaScript tem 10 letras e selecionamos de 0 a 10.
    Vamos usar essa seleção, mas de 0 a 1, para pegar a primira letra das palavras que declalarmos nas strings.
    Dessa forma, o codigo vai ficar:

            String A1 = (A.substring(0, 1)).toUpperCase() + A.substring(1);
            String B1 = (B.substring(0, 1)).toUpperCase() + B.substring(1);
    


    Por fim, somamos A.substring(1) e B.substring(1) porque precisamos dizer ao computador que voltaremos a imprimir os caracteres (a começar pela posição 1) em letras minúsculas. Sem essa adição, a impressão no console termina na primeira letra maiúscula, deixando de imprimir o resto em minúsculo.
    Caso quiséssemos delimitar a quantidade de caracteres minúsculos, poderíamos usar dois parametros (1, 10) e depois voltar a imprimir caracteres maiúsculos usando um ou dois parametros.

    =========

    O codigo final fica assim:

        public static void main(String[] args) {
    
            Scanner scanner = new Scanner(System.in);
            String A = scanner.next();
            String B = scanner.next();
    
            int sum = A.length() + B.length();
            System.out.println(sum);
    
            if(A.compareTo(B) > 0){
                System.out.println("Yes");
            } else {
                System.out.println("No");
            }
    
            String A1 = (A.substring(0,1)).toUpperCase() + A.substring(1);
            String B1 = (B.substring(0,1)).toUpperCase() + B.substring(1); ;
    
    
            System.out.println(A1 + " " + B1);
    
        }
    }
    


    =========
  • 관찰:

  • O método compareTo() usa o sistema menor para maior. Sendo assim, A < B < C < D < E ... < Z. Isso significa que, quando mais perto de Z, maior o "valor" de um caracter. E quanto mais perto de A, menor o seu valor. É por isso que pode parecer confuso que uma letra que vem primeiro retorne "No", mas é porque ela é menos "valiosa" do que uma letra que vem depois.



    =========

    참조:



  • Substring : 오라클

  • CompareTo : 오라클

  • CompareTo : 카일룸

  • CompareTo : 구즈

  • =============

    자바에서 HackerRank를 사용하지 않고 공개적으로 실행해야 합니다. 전체 시리즈 액세스:






  • HackerRank #12 | 문자열 소개
















  • 좋은 웹페이지 즐겨찾기