0

文字列変数を受け取るコンストラクターから日付 mm/dd を検証する必要があります。私はいくつかの方法を試しましたが、うまくいきませんでした。最後に試したのは、文字列を ascii に変換し、その方法で検証することでしたが、どちらも機能していません。

public Dated(String dateStr)
{
 this.dateStr = dateStr;
 for (int i = 0; i < dateStr.length(); i++)
 {
  char c = dateStr.charAt(i);
  asciiValues = (int) c;      // change each string character to ASCII value

 }

}

public void display()
{
    System.out.println(asciiValues);
}
4

1 に答える 1

0

私が知る限り、文字列値の解析に苦労しています。右。

Java には、このようなことを検証するためのツールが多数用意されています。

SimpleDateFormat日付を検証し、日付に変換できるユーティリティ クラスを使用しDateます。String

public class Dated{

  private SimpleDateFormat sdf = new SimpleDateFormat("MM/dd") // M --> Month; d--> Day

  public Dated(String dateStr) throws Exception{
    try{
      Date d = sdf.parse(dateStr);
      System.out.println( d );
    } catch (ParseException e) {
      // you can throw that exception just to 
      // avoid creating the object of this class
      throw e;
    }
  }
}

ただし、で言及されているように、うるう年の日付を検証していないことに注意してください@JB Nizet。年も検証することでそれを克服できます。

上記のコードで「02/29」を渡すと、3 月 1 日の日付が取得されます。1970 年はうるう年ではないため、これは正しい日付ではありません。

したがって、日付の検証にも年を含めます。

年を追加するには、次のように SimpleDateFormat を変更できます。

private SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); // y --> Year
于 2012-07-14T07:05:24.277 に答える