#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) "."); }