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; } }

C++ for Engineers and Scientists
4th Edition
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Bronson, Gary J.
Chapter5: Repetition Statements
Section5.5: A Closer Look: Loop Programming Techniques
Problem 12E: (Program) Write a program that tests the effectiveness of the rand() library function. Start by...
icon
Related questions
Question

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;
}
}

Expert Solution
steps

Step by step

Solved in 3 steps with 5 images

Blurred answer
Knowledge Booster
Function Arguments
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ for Engineers and Scientists
C++ for Engineers and Scientists
Computer Science
ISBN:
9781133187844
Author:
Bronson, Gary J.
Publisher:
Course Technology Ptr
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning