Java Assignment Help. -
ColonelBurton - 01.11.2014
I have Assignment that must be submitted by tomorrow, i was able to solve 4 of the 5 questions.
Well, i am stuck in this
Код:
Write a program that reads in from the user an integer (num) between 1000 and 9999. Then it prompts
the user to enter an integer (d) between 0 and 9 and a character (ch). Your program should replace the
second and the last digit in num with d and it should display the character that precedes (ch) followed by
the number after the change and then the character that comes after (ch). Use the division and modulus
operators to extract the digits from num.
Sample run:
Enter an integer between 1000 and 9999: 2134
Enter a digit (between 0 and 9): 6
Enter a character: b
Number was 2134. Result: a2636c.
and this what i did for now
Код:
package question2;
import java.util.Scanner;
public class Question2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter an integer between 1000 and 9999: ");
int num = input.nextInt();
System.out.println("Enter a digit (between 0 and 9): ");
int d = input.nextInt();
System.out.println("Enter a character: ");
double ch = input.nextDouble();
}
}
Anyone knows how to solve it?
Re: Java Assignment Help. -
Mauzen - 01.11.2014
Take a look at how strings work. When modifying certain digits of something this is the easiest way to go.
If you read a bit about how to use them and what you can do with them youll probably find the answer quickly.
About your code: in the last line youre trying to get a double from the input. A double is just like a float but with higher precision. Its certainly not a String or (char)acter and so cant hold the character you entered, so you have to use a different datatype there.
Re: Java Assignment Help. -
ColonelBurton - 01.11.2014
Quote:
Originally Posted by Mauzen
Take a look at how strings work. When modifying certain digits of something this is the easiest way to go.
If you read a bit about how to use them and what you can do with them youll probably find the answer quickly.
About your code: in the last line youre trying to get a double from the input. A double is just like a float but with higher precision. Its certainly not a String or (char)acter and so cant hold the character you entered, so you have to use a different datatype there.
|
so at the last line i have to change it to
Char ch = input.nextChar();
Still i need to figure out how to replace 2nd and 4th in num and replace it with integer d.
As well display the precedent and the letter that comes after ch before&after the number.
Re: Java Assignment Help. -
IvanSb - 01.11.2014
As here
https://buckysroom.org/forum/
Someone will answer you, trust me
Re: Java Assignment Help. -
RaZVaN ^ xD - 02.11.2014
Assuming you have to use only modulus and division, you can do something like this:
Код:
num = num - ( ( num / 100 % 10 ) * 100 ) - ( num % 10 ) + d * 100 + d;
cout << (char)(ch-1) << num << (char)(ch+1);
I wrote the code in C syntax.
Re: Java Assignment Help. -
Mauzen - 02.11.2014
Quote:
Originally Posted by ColonelBurton
so at the last line i have to change it to
Char ch = input.nextChar();
Still i need to figure out how to replace 2nd and 4th in num and replace it with integer d.
As well display the precedent and the letter that comes after ch before&after the number.
|
Yep, a char would work for that.
Incase its not too late yet, take a look at the Java API for Strings :
http://docs.oracle.com/javase/6/docs...ng/String.html
The examples at the top already point into exactly the direction you need.
You cant actually replace the digits in the string without extra efforts, but you can cut out the parts you need from the number, and then recombine the string, inserting the d integer and the chars where you need them.
For that you should take a closer look at the example, the substring, and the length method. Im pretty sure this the expected solution, as other ways to do it are more complicated.
I dont like just giving the solutions and explaining them for assignments. Its much more helpful if you work it out yourself, with just having hints where to look
@RaZVaN ^ xD
This would be an alternative solution. Though I dont think they expect a solution like that for the assignment, as its more complicated, and rather focuses on math than on the java language (and it wouldnt work if the number wasnt 4 digits long without extra effort
)
Re: Java Assignment Help. -
BroZeus - 02.11.2014
I program in java so here is solution -
Код:
package question2;
import java.util.Scanner;
public class Question2 {
void main() {
Scanner input = new Scanner(System.in);
System.out.println("Enter an integer between 1000 and 9999: ");
int num = input.nextInt();
System.out.println("Enter a digit (between 0 and 9): ");
int d = input.nextInt();
System.out.println("Enter a character: ");
char ch = input.nextLine.charAt(0);//thats how u enter a char
String result = (ch-1);//it stores the final result
int r,c = 1,f=num;
while(num != 0)
{
r = num % 10;
num = num/10;
if(c==2 || c==4)result+=d;
else result+=r;
c++;
}
result+= (ch+1);
System.out.println("Number was "+f+". Result : "+result);
}
}
didnt tested it caz currently i dont have bluej on my pc
But should work...
Re: Java Assignment Help. -
Infinity - 02.11.2014
Quote:
Originally Posted by BroZeus
I program in java so here is solution -
Код:
package question2;
import java.util.Scanner;
public class Question2 {
void main() {
Scanner input = new Scanner(System.in);
System.out.println("Enter an integer between 1000 and 9999: ");
int num = input.nextInt();
System.out.println("Enter a digit (between 0 and 9): ");
int d = input.nextInt();
System.out.println("Enter a character: ");
char ch = input.nextLine.charAt(0);//thats how u enter a char
String result = (ch-1);//it stores the final result
int r,c = 1,f=num;
while(num != 0)
{
r = num % 10;
num = num/10;
if(c==2 || c==4)result+=d;
else result+=r;
c++;
}
result+= (ch+1);
System.out.println("Number was "+f+". Result : "+result);
}
}
didnt tested it caz currently i dont have bluej on my pc
But should work...
|
First of all, handing him a clear cut solution is NOT helping. He will learn nothing from it and, depending on how strict his school is, could even get in trouble for handing in code that isn't his.
Furthermore, it doesn't work...
@OP:
In Java, a String cannot be modified. However, you can convert the string to a array of characters (******, in which you can modify each individual character.
Re: Java Assignment Help. -
BroZeus - 02.11.2014
There must be some little error but it must work i am sure...
And string cannot be modified but can be concated
So i have made a string which is concated...
And for giving him direct solution I am sorry for dat..
Re: Java Assignment Help. -
Infinity - 02.11.2014
Quote:
Originally Posted by BroZeus
There must be some little error but it must work i am sure...
And string cannot be modified but can be concated
So i have made a string which is concated...
And for giving him direct solution I am sorry for dat..
|
You didn't follow the assignment, at all. So no, it is wrong. Or can you explain why you're using modulo and such for an assignment such as this one?
Edit : I get it, and it is needlessly complicated. Like I said, Strings may be immutable but character arrays are not, which seem to be the only logical goal of the assignment...