Печать на Java

#java

Вопрос:

Я работаю над программой, и в настоящее время у меня есть этот код:

 import java.util.Scanner;  public class LabProgram {   public static void main(String[] args) {     Scanner sc = new Scanner(System.in); // System.out.print("input :");  String input = sc.nextLine();  String[] in = input.split(" "); // System.out.print("output:");  if(in.length==3)  System.out.println(in[2] " ," in[0] " " in[1].charAt(0) ".");  else  System.out.println(in[1] ", " in[0]);  }  }  

Ввод:

 Pat Silly Doe  

Выход:

 Doe ,Pat S.  

Ожидаемый результат:

 Doe, P.S.  

Я пробовал несколько разных вариантов и, похоже, не могу понять.

Комментарии:

1. что ты получаешь? Вы отладили свой код? Надеюсь, вы понимаете, почему эта длина не равна 3?

2. Пожалуйста, добавьте надлежащее объяснение логики получения выходных данных, нам не нужно об этом догадываться.

3. Взгляните на строку, которую вы здесь строите: in[2] " ," in[0] " " in[1].charAt(0) "." и особенно подумайте о том, что in[0] и in[1] будет для ввода Pat Silly Doe . Затем подумайте о том, почему вы получаете S. , но не P. получаете .

4. Я имею в виду, на самом деле, вы в основном уже сделали это, измените in[2] " ," in[0] " " in[1].charAt(0) "." на in[2] ", " in[0].charAt(0) "." in[1].charAt(0) "."

Ответ №1:

 if(in.length==3) {  System.out.println(  in[2] ", "   in[0].charAt(0) "."   in[1].charAt(0) "."); }