해커랭크 #12 | 문자열 소개 | 🇧🇷
string
(길이) No
para que as strings estejam na ordem alfabética correta ou Yes
se estiverem na ordem alfabética incorreta ou equale*. O passo para resolução desse problema é:
Scanner
String A
e a String B
String A
com o Tamanho da String B
System.out.println(A.length() + B.length());
.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를 사용하지 않고 공개적으로 실행해야 합니다. 전체 시리즈 액세스:
Reference
이 문제에 관하여(해커랭크 #12 | 문자열 소개 | 🇧🇷), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/beatrizmaciel/hackerrank-12-strings-introduction-2d1n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)