2014-09-22 1 views
1

Как бы вы взяли строку, которую вы вводите с клавиатуры, и переупорядочиваете ее? Например, в моем случае я прошу пользователя импортировать имя человека в формате «фамилия, имя». Затем мне нужно изменить это на «имя фамилии».Как я могу отделить строку в Java от полного имени до фамилии, имени?

Вот то, что я до сих пор:

private void setName() { 
    Scanner in = new Scanner(System.in); 
    System.out.println("Please enter the last name followed by the first name of" + 
      "a student: "); 
    name = in.nextLine(); 
} 
+0

Посмотрите на метод 'split()' на 'String'. –

+0

Каков ожидаемый результат? Например, я вхожу, для Джона Доу, «Дой Джон» или «Доу, Джон»? Они будут иметь два разных решения. – Compass

+1

Это будет невероятно сложно, если не невозможно отделить первое и последнее имя от кого-то, если строки будут друг против друга. –

ответ

1

Простым решением было бы запросить каждое имя отдельно, используя два вызова функции nextLine() сканера.

import java.util.Scanner; 

public class FirstNameLastName { 
    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 
     System.out.println("Please enter the student's last name: "); 
     String lastName = scan.nextLine(); 

     System.out.println("Please enter the student's first name: "); 
     String firstName = scan.nextLine(); 

     System.out.println("Hello, " + firstName + " " + lastName); 
    } 
} 
1

Ну, вы можете использовать String.split (»«), который возвращает строку []. После этого все, что вам нужно сделать, это запустить этот массив в обратном порядке, распечатывая строки.

String[] tokens = name.split(" "); // split line on string separated by " " 
for(int i = tokens.length - 1; i >= 0; i--) 
    System.out.println(tokens[i]); 

PS: Речь идет не о java, а о программировании.

С уважением.

1

Создав два входа, как показано ниже

import java.util.Scanner; 

public class Main { 
    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 
     System.out.println("Please enter the last name of a student: "); 
     String lastName = in.nextLine(); 

     System.out.println("Please enter the first name of a student: "); 
     String firstName = in.nextLine(); 

     System.out.println(firstName + " " + lastName); 
    } 
} 
1

Использование name.split(delimiter). Это возвращает массив String, а каждый элемент - это элемент строки, разделенный разделителем, который вы должны указать в качестве параметра при использовании метода. Например. От official Java documentation:

The string "boo:and:foo", for example, yields the following results with these expressions: 

Regex Result 
: { "boo", "and", "foo" } 
o { "b", "", ":and:f" } 

Approach:
Scanner.nextLine() возвращает строку. Таким образом, переменная name a Строка пример. Теперь вам нужно выяснить, какие методы поддерживаются String, чтобы вы могли вызвать его в экземпляре с помощью .. Настало время пройти через официальный Java documentation for String и узнать методы, которые вы можете использовать. Когда вы найдете нужные методы, вы можете использовать Google для примера :).

Смежные вопросы