come estrarre da una stringa in nome, mezzo e cognome. e come riconoscere quando non vi è alcun nome di mezzo inputed

devo fare quanto segue:

molti documenti usano un formato specifico per il nome di una persona. scrivi un programma il cui input è: nomeprima nome-cognome middleName e il cui output è: cognome, nomeprima middleInitial.

enter image description here

è attraverso un libro di testo quindi non mi è stato insegnato come dividere le corde. questo è tutto quello che posso trovare online, ma non è quello che il libro di testo sta chiedendo. finora mi è stato insegnato come confrontare le stringhe, ottenere una lunghezza delle stringhe, rami, istruzioni switch, operazioni di stringa.

import java.util.Scanner; public class LabProgram { public static void main(String[] args) { Scanner scnr = new Scanner(System.in); String firstName; String middleName; String lastName; String name; name = scnr.nextLine(); int firstSpace = name.indexOf(" "); firstName = name.substring(0, firstSpace); int secondSpace = name.indexOf(" ", firstSpace + 1); if (secondSpace < 0) { lastName = name.substring(firstSpace); System.out.println(lastName + ", " + firstName); } else { middleName = name.substring(firstSpace, secondSpace); lastName = name.substring(secondSpace); System.out.println(lastName + ", " + firstName + " " + middleName.charAt(0) + "."); } } }

questo è quello che ho finora.

EN From: How to pull from a string into first, middle, and last name. And how to recognize when there is no middle name inputed

More similar articles:

12 Comments

  1. credo che quello che vuole che io faccia è usare indexOf (), per trovare lo spazio e poi di nuovo per il cognome.

  2. se non è possibile utilizzare il split() è possibile leggere le prime due voci con scnr.next() e poi il terzo ingresso sarà il resto della linea, e poi si può prendere una sottostringa di esso che toglie lo spazio.

    import java.util.Scanner; 
    
    public class LabProgram {
       public static void main(String[] args) {
            Scanner scnr = new Scanner(System.in);
    
            String name1;
            String name2;
            String name3;
    
            name1 = scnr.next();
            name2 = scnr.next();
            name3 = scnr.nextLine();
    
            if (name3.equals("")){
                System.out.println(name2 + ", " + name1);
            }
            else{
                name3 = name3.substring(1);
                System.out.println(name3 + ", " + name1 + " " + name2.charAt(0) + ".");
            }
       }
    }
    1. so che è il modo per farlo, ma dal momento che non mi è stato insegnato split ancora, non funzionerà. ma questo è molto simile a quello che ho finora, il suo solo non tirando il nome medio correttamente, io aggiornare la parte superiore con quello che ho in modo da poter vedere.

    2. Oh, contento che hai trovato una risposta da soli, Ho modificato il mio con un codice che non utilizza split() btw.

    3. @JessicaGarnica, Vi consiglio di prendere il vostro codice corretto dalla domanda e inviare una risposta con esso, non avrebbe senso fare una domanda con la soluzione su di esso
  3. questo è il codice corretto:

    import java.util.Scanner; 
    
    public class LabProgram {
    public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
    
      String firstName;
      String middleName;
      String lastName;
      String name;
    
      name = scnr.nextLine();
    
      int firstSpace = name.indexOf(" ");
      firstName = name.substring(0, firstSpace);
    
      int secondSpace = name.indexOf(" ", firstSpace + 1);
    
      if (secondSpace < 0) { 
         lastName = name.substring(firstSpace + 1);
         System.out.println(lastName + ", " + firstName);
      }
      else {
         middleName = name.substring(firstSpace, secondSpace);
         lastName = name.substring(secondSpace + 1);
         System.out.println(lastName + ", " + firstName + " " +     middleName.charAt(1) + ".");
      }
    
    
    
      }
    }
    1. si prega di non fornire le risposte ai compiti a casa in codice; invece, suggerire un approccio come “cercare il numero di spazi nella stringa”.

Leave a Reply

Your email address will not be published. Required fields are marked *