1

誰かの生年月日を取得し、それを dd/mm/yyyy に分割して "." を使用する必要があるときに、このコードを機能させようとしています。日と月、月と年を分けるものとして。「/」、「」、「-」などの他の文字でも機能するようになりました。「。」を使用しようとすると。範囲外の配列インデックスの例外エラーが発生します。

if(input.contains("."))
{
String[] tokens = input.split(".");
day = Integer.parseInt(tokens[0]);
intMonth = Integer.parseInt(tokens[1]);
year = Integer.parseInt(tokens[2]);
}

変数は上記で正しく宣言されています(そう思います)。彼らは他のケースで働くので。不明な点がある場合は、お気軽に質問してください。事前に感謝します。

4

8 に答える 8

1

これを試して:

if(input.contains("."))
{
String[] tokens = input.split("\\.");
day = Integer.parseInt(tokens[0]);
intMonth = Integer.parseInt(tokens[1]);
year = Integer.parseInt(tokens[2]);
}
于 2013-08-08T05:50:30.067 に答える
0

入力についてよろしいですか? 単に「.」である可能性があるため、配列の長さが短くなります。\\.の照合にも使用し.ます。

  String[] tokens = input.split("\\.");
  day      = token.length > 0 ? Integer.parseInt(tokens[0]) : 0;
  month    = token.length > 1 ? Integer.parseInt(tokens[1]) : 0;
  year     = token.length > 2 ? Integer.parseInt(tokens[2]) : 0;
于 2013-08-08T05:49:23.420 に答える
0

javadoc を確認することは常に良いオプションです。 String#split(String regex)を参照してください。他の人が指摘したように、String#split は正規表現を取ります。ここで正規表現を読んでください。

于 2013-08-08T05:49:33.473 に答える