You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pode não ser a maneira mais apropriada, mas decidi compartilhar para que não de a impressão de que a única forma de reverter o número seja transformando ele em String.
Como disse, pode não ser a maneira mais adequada, porem interessante buscar outras formas somente para testes e aprendizado.
import java.util.Scanner;
import static java.lang.String.copyValueOf;
import static java.lang.String.valueOf;
// #1
public class ReverseNumberNoConvert {
public static void reverseNumber() {
Scanner scanner = new Scanner(System.in);
System.out.println("Input must have 4 digits, between 1000 and 9999.");
int input = scanner.nextInt();
while (input < 1000 || input > 9999) {
System.out.println("Input must have 4 digits, between 1000 and 9999.");
input = scanner.nextInt();
}
String savingReverseNumber = "";
String convertToString = valueOf(input);
System.out.println("Input: " + convertToString);
char reverseNum;
for (int i = 0; i < convertToString.length(); i++) {
reverseNum = convertToString.charAt(i);
savingReverseNumber = reverseNum + savingReverseNumber;
}
System.out.println("Output: " + savingReverseNumber);
}
}
// #2
class ReverseNumberNoStringBuilder {
public static void reverseNumber() {
Scanner scanner = new Scanner(System.in);
System.out.println("Input must have 4 digits, between 1000 and 9999.");
int reverseNum = 0;
String savingNumb = "";
int input = scanner.nextInt();
while (input < 1000 || input > 9999) {
System.out.println("Input must have 4 digits, between 1000 and 9999.");
input = scanner.nextInt();
}
System.out.println("Input: " + input);
for (; input != 0; ) {
reverseNum *= 10;
savingNumb += input % 10;
input = input / 10;
}
System.out.println("Output: " + savingNumb);
}
}
// #3
class ReverseNumber {
public static void reverseNumber() {
Scanner scanner = new Scanner(System.in);
do {
System.out.println("Input must have 4 digits, between 1000 and 9999.");
int input = scanner.nextInt();
String inputConvertToString = valueOf(input);
if (input >= 1000 && input <= 9999) {
StringBuilder stringBuilder = new StringBuilder(inputConvertToString);
System.out.println("input: " + input);
System.out.println("output: " + stringBuilder.reverse());
break;
}
} while (true);
}
}
class ReverseNumberMain {
public static void main(String[] args) {
ReverseNumberNoConvert.reverseNumber();
ReverseNumberNoStringBuilder.reverseNumber();
ReverseNumber.reverseNumber();
}
}
The text was updated successfully, but these errors were encountered:
Ótimo amigo! Muito obrigada pelo interesse em compartilhar seu conhecimento. <3
Quando eu falei que "Você não consegue pegar um numeral e pegar o inverso dele" estava me referindo que a classe Integer não tem um método que faz essa função.
Logo, podemos transformar esse Integer ou o tipo primitivo int em uma StringBuilder e utiliza o método reverse() que faz isso de uma forma relativamete simples. (:
Ah, outro colega também compartilhou uma forma de fazer utilizando resto da divisão:
De fato, para um problema, exitem n maneiras de interpretar e resolver. Cabe a nós como bons programadores, encontrarmos a maneira de resolver que performa melhor! (:
Obrigado Camila <3
Como você mesma disse reverter um integer não dá, porem ha N formas de fazer.
Como disse eu só quis compartilhar outras formas de fazer.
Pode não ser a maneira mais apropriada, mas decidi compartilhar para que não de a impressão de que a única forma de reverter o número seja transformando ele em String.
Como disse, pode não ser a maneira mais adequada, porem interessante buscar outras formas somente para testes e aprendizado.
The text was updated successfully, but these errors were encountered: