-2

タイトルがかなりわかりにくいですが、お許しください、ありがとうございます。

日付を表す 1/1/2013 または 11/1/2013 または 11/12/2013 のような文字列があるとします。

私が欲しいのは、月を意味する /**/ の真ん中の文字列だけです。

別の文字列の途中で文字列を取得する方法がわからないため、まだ何も試していません。

誰かが私に何か考えを教えてくれますか、またはこの種の問題を解決したことがある場合は、解決策を共有してください。事前に感謝します。

4

6 に答える 6

6

を使用split()して分割し/、2番目の値を取得します。

String date = "1/12/2013";
String month = date.split("/")[1];
于 2013-01-04T06:52:47.243 に答える
2
SimpleDateFormat dateFormat = new SimpleDateFormat("MM");
System.out.println(dateFormat.format(new SimpleDateFormat("dd/MM/yyyy").
                                                       parse("11/12/2013")));
于 2013-01-04T06:55:01.640 に答える
2

他の回答は、ほとんどの良い回答をカバーしています。やり過ぎかもしれないもう1つのアプローチは、正規表現です

 Pattern p = Pattern.compile("/.*/");
 Matcher m = p.matcher("1/1/2013");
 String month = m.group();
于 2013-01-04T06:58:16.370 に答える
1

試す

    String s = "1/12/2013";
    String m = s.substring(s.indexOf('/') + 1, s.lastIndexOf('/'));

これは、分割、解析、または正規表現よりもはるかに効率的であることに注意してください。String.substringは特別であり、コピーせずに内部charバッファーを共有しますが、余分なオブジェクトは1つも作成されません。

于 2013-01-04T06:56:17.673 に答える
1
String date = "11/12/20113";
String month = date.substring(date.indexOf("/")+1, date.lastIndexOf("/")) 

ここでは、最初の "/" のインデックスと 2 番目の "/" のインデックスをパラメーターとして substring() に渡します。これにより、要求どおりに "/" と "/" の間の文字列が返されます。

于 2013-01-04T06:54:52.357 に答える
0

文字列を/文字で次のような配列に分割できます。

String[] dateArray = date.split ("/");

その場合、月は2番目の要素です。

String month = dateArray[1];
于 2013-01-04T06:57:07.297 に答える