The assignment i\'ve been given tells me to ask the user for their: first name m
ID: 3625216 • Letter: T
Question
The assignment i've been given tells me to ask the user for their:
first name
middle name
last name
age
lucky number
and favorite color
From that i'm suppose to output something that looks like this:
Matthew Stern is 18 years old.
The initials of Matthew Sulivan Stern are MSS.
MSS's favorite color is blue and their lucky number is 29.
The problem that i'm having is that the initials appear in unicode and I don't know how to turn them in to characters. Instead of the above statement, I get something like:
Matthew Stern is 18 years old.
The initials of Matthew Sulivan Stern are 243.
243's favorite color is blue and their lucky number is 29.
I used charAt to get the initials from the user. What can I do to get rid of the unicode? Here is my code, message me if something I said isn't clear. Cramster keeps on reformatting my text..:
// Story code
import java.util.Scanner;
public class Story
{
public static void main(String [] args)
{
Scanner keyboard = new Scanner(System.in);
String first; // User's first name
String middle; // User's middle name
String last; // User's last name
String color; // User's favorite color
int age; // User's age
int number; // User's lucky number
// Get the user's name
System.out.println("What is your first name? ");
first = keyboard.nextLine();
System.out.println("What is your middle name? ");
middle = keyboard.nextLine();
System.out.println("What is your last name? ");
last = keyboard.nextLine();
// Get the user's age and lucky number
System.out.println("How old are you? ");
age = keyboard.nextInt();
System.out.println("What is your lucky number? ");
number = keyboard.nextInt();
// Consume the remaining newline
keyboard.nextLine();
// Get the user's favorite color
System.out.println("What is your favorite color? ");
color = keyboard.nextLine();
// Discern the users intials and capitalize letters
String bigFirst = first.toUpperCase();
String bigMiddle = middle.toUpperCase();
String bigLast = last.toUpperCase();
char firstletter = bigFirst.charAt(0); // User's first name initial
char middleletter = bigMiddle.charAt(0); // User's middle name initial
char lastletter = bigLast.charAt(0); // User's last name initial
// Display to user
System.out.println(""+first+" "+last+" is "+age+" years old. ");
System.out.print("The initials of "+first+" "+middle+" "+last+" are ");
System.out.println(firstletter + middleletter + lastletter + ". ");
System.out.print(firstletter + middleletter + lastletter + "'s favorite color is");
System.out.println(" "+color+" and their lucky number is "+number+"");
}
}
Explanation / Answer
here is your deadly mistake lines System.out.println(""+first+" "+last+" is "+age+" years old. "); System.out.print("The initials of "+first+" "+middle+" "+last+" are "); System.out.println(firstletter +""+ middleletter+"" + lastletter + ". "); System.out.print(firstletter + middleletter + lastletter + "'s favorite color is"); System.out.println(" "+color+" and their lucky number is "+number+""); remember that char is unicode as u said it, so when you write .... System.out.println( firstleeter + middleletter + lastletter ); you are adding the value of the letters... like 1 + 2 + 3 = 6 so the system.out.print is printing 6 you must use System.out.println(firstletter +" "+ middleletter+" " + lastletter + ". "); means that u are printing a char + another char + another char
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.