Java Question. I designed a function that is supposed to accept an int and return the int in reverse like so: Example 1: Input: x = 123 Output: 321 Example 2: Input: x = -123 Output: -321 Example 3: Input: x = 120 Output: 21 Example 4: Input: x = 0 Output: 0 My code appears to work for positive integers but returns an error when I enter a negative number. Any ideas how I can fix it? Thank you. import java.util.*; public class ReverseInteger { /** The Constructor sets @param var Description */ public static void main(String[] args) { System.out.println("Please enter an integer: \n"); Scanner keyboard = new Scanner(System.in); String input = keyboard.nextLine(); int original = Integer.parseInt(input); int converted = reverse(original); System.out.println(converted); } public static int reverse(int x) // given in the problem set { char[] chars = new char[String.valueOf(x).length()]; String original1 = Integer.toString(x); boolean negative = false; int num_of_digits = 0; int reversed; for(int i = 0; i < chars.length; i++) { if(original1.charAt(i) == '-') negative = true; else chars[i] = original1.charAt(i); } num_of_digits = chars.length; if(num_of_digits %2 == 0) { for(int i = 0; i < (num_of_digits)/2; i++) { char temp = chars[i]; chars[i] = chars[num_of_digits-(i+1)]; chars[num_of_digits-(i+1)] = temp; } reversed = Integer.parseInt(new String(chars)); if(negative) reversed = (reversed * -1); } else { for(int i = 0; i < ((num_of_digits/2)+1); i++) { char temp = chars[i]; chars[i] = chars[num_of_digits-(i+1)]; chars[num_of_digits-(i+1)] = temp; } reversed = Integer.parseInt(new String(chars)); if(negative) reversed = (reversed * -1); } return reversed; } }
Java Question.
I designed a function that is supposed to accept an int and return the int in reverse like so:
Example 1:
Input: x = 123 Output: 321
Example 2:
Input: x = -123 Output: -321
Example 3:
Input: x = 120 Output: 21
Example 4:
Input: x = 0 Output: 0
My code appears to work for positive integers but returns an error when I enter a negative number. Any ideas how I can fix it? Thank you.
import java.util.*;
public class ReverseInteger
{
/**
The Constructor sets
@param var Description
*/
public static void main(String[] args)
{
System.out.println("Please enter an integer: \n");
Scanner keyboard = new Scanner(System.in);
String input = keyboard.nextLine();
int original = Integer.parseInt(input);
int converted = reverse(original);
System.out.println(converted);
}
public static int reverse(int x) // given in the problem set
{
char[] chars = new char[String.valueOf(x).length()];
String original1 = Integer.toString(x);
boolean negative = false;
int num_of_digits = 0;
int reversed;
for(int i = 0; i < chars.length; i++)
{
if(original1.charAt(i) == '-')
negative = true;
else
chars[i] = original1.charAt(i);
}
num_of_digits = chars.length;
if(num_of_digits %2 == 0)
{
for(int i = 0; i < (num_of_digits)/2; i++)
{
char temp = chars[i];
chars[i] = chars[num_of_digits-(i+1)];
chars[num_of_digits-(i+1)] = temp;
}
reversed = Integer.parseInt(new String(chars));
if(negative)
reversed = (reversed * -1);
}
else
{
for(int i = 0; i < ((num_of_digits/2)+1); i++)
{
char temp = chars[i];
chars[i] = chars[num_of_digits-(i+1)];
chars[num_of_digits-(i+1)] = temp;
}
reversed = Integer.parseInt(new String(chars));
if(negative)
reversed = (reversed * -1);
}
return reversed;
}
}
Step by step
Solved in 3 steps with 5 images