A simple question from a Java newbie

Hi there,

I have just started learning to write Java and I'm stumped already!

I have to write a short program that asks the user to type their name in full.  The assumption is that their full name comprises of 3 names.  The first initial of each name should then be displayed.

eg, 'Please enter your full name' ~: Flo The Minx
F T M

 The tutorial that I am working from tells me to use the string methods to work out where the first and last spaces are.

Here is what I have so far... (I know it's wrong because the answer it displays is '123')

Also, I brief explanation of the answer would be appreciated as I am trying to learn and I won't learn without knowing how it works, thanks


//Print initials
 
import java.util.*;
 
public class Initials
{
  public static void main (String[]args)
  {
    //create Scanner to read from keyboard
    
   Scanner myKeyboard = new Scanner(System.in);
   
   //ask for name
   System.out.print("Please enter your full name~: ");
   String name = myKeyboard.nextLine();
   
   System.out.print((name.charAt(0)) + (name.indexOf(' ') + 1));
   }
 }

Open in new window

LVL 1
flo_the_lil_minxAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
contactkarthiConnect With a Mentor Commented:
the print statement should be

 System.out.println((name.charAt(0)) +" " + name.charAt(name.indexOf(' ') + 1) + " " + name.charAt(name.lastIndexOf(' ') + 1));
 
0
 
flo_the_lil_minxAuthor Commented:
Thanks for that, I'm glad to see I wasn't that far off (ish)
0
 
flo_the_lil_minxAuthor Commented:
So I guess what the code is saying in simplistic terms..

System.out.println((name.CharAt(0))
print out the first character of the String name then

name.charAt(name.indexOf(' ') + 1)
print out the character that is one more than the first space

and finally print out the character that is one more than the last space?
0
 
contactkarthiCommented:
this print statement ssumes that there are 2 blank spaces..

as you sait chatAt(0) prints the first character

name.charAt(name.indexOf(' ') + 1) will print the character next to the first space

name.lastIndexOf(' ') + 1) will print the character after the last space..


0
 
flo_the_lil_minxAuthor Commented:
Thanks!
0
All Courses

From novice to tech pro — start learning today.