在Java上获得怪异的输出(代码新手)

时间:2018-09-18 02:55:52

标签: java output

输入为2013年4月3日,输出应为2013年4月3日,但是我一直得到3, 2013-Apri-20的输出

 import java.util.Scanner;
    public class DateConversion {
    public static void main( String [] args ) {


    Scanner sc = new Scanner ( System.in );


    System.out.println("Enter the date: ");
    String temp = sc.nextLine();

    String day =temp.substring(6);
    String month = temp.substring(0, 4);
    String year = temp.substring(9, 12);

    System.out.println(day + "-" + month + "-" + year);

    sc.close();


     }
   }

2 个答案:

答案 0 :(得分:0)

您的day子字符串仅包含一个值(因此它从第六个字符开始到输入的末尾)。我将使用String.split来获取令牌。喜欢,

String temp = "April 3,2013";
String[] tokens = temp.split("[\\s,]");
System.out.printf("%s-%s-%s%n", tokens[1], tokens[0], tokens[2]);

答案 1 :(得分:0)

String类substring方法将字符串从开始位置1到结束位置1 substring(start, end-1)

Scanner sc = new Scanner ( System.in );


    System.out.println("Enter the date: ");
    String temp = sc.nextLine();

    String day =temp.substring(6,7);
    String month = temp.substring(0, 5);
    String year = temp.substring(8, 12);

    System.out.println(day + "-" + month + "-" + year); //3-April-2013

    sc.close();