2017-07-21 18 views
-2

文字列値= "2017/3/4"; "2017-03-04"のようなLocalDate形式の文字列値が必要です split()、indexof()などのフォーマッタや文字列メソッドを使用せずにこの値をlocaldateに変換する方法。フォーマッタと文字列メソッドを使用せずに文字列をLocalDate形式に変換する方法

+1

これは不明です。 'String.length()'、 'String.charAt()'、 'String.toCharArray()'を使用できますか?たぶん、 'String.replace()'や 'String.replaceAll()'? LocalDate.parse(CharSequence)は許可されています(実装ではフォーマッタが使用されています)。私は、制約を正確に綴る必要があるのではないかと心配しています。 –

+0

何を試しましたか?あなたはより多くのことを学び、同時にあなたの試みや、彼らがどのように不十分か失敗したのか、またどこに止まったのかを教えれば、より良い助けを得るでしょう。 –

+1

'String'の**任意の**メソッドを使用できない場合、**その値を取得することはできません - 少なくとも、何かを始めるにはそれを取得する必要があります。どの方法を使うことができるかを指定すれば、より多くの文脈を提供する(なぜこのような制限があるのか​​、それとも正確に解決しようとしているのか)、そして理想的には[mcve]、これによって誰もが理解しやすくなります。答え。 –

答えて

1

簡単な方法:スラッシュをハイフンに置き換えるには、String.replace(char oldChar, char newChar)を使用します。 replaceはあなたの文字列を変更するのではなく、代わりに新しい文字列を返します。次にLocalDate.parse(CharSequence text)を使用して、新しい文字列をLocalDateに変換します(StringCharSequenceです)。

String.replace()を使用することができない場合は、String.toCharArray()を使用してchar[]に変換してください。この配列を繰り返し、各スラッシュをハイフンで置き換えます。次に、String(char[] value)コンストラクタを使用して新しい文字列を作成します。上記のように進んでください。または、StringBuilder(CharSequence seq)コンストラクタを使用して元の文字列からStringBuilderを作成し、それを繰り返して各スラッシュをハイフンに置き換えます。また、StringBuilderLocalDate.parse()に渡すこともできます。CharSequenceです。編集:この最後のアプローチは直接Stringメソッドを使用していないことに注意してください。StringBuilderコンストラクタは間接的にString.length()String.getChars()を使用します。

LocalDate.parse()が暗黙的にDateTimeFormatterを使用しているために使用できない場合は、文字列から日付、月、および年を抽出する必要があります。これは少し複雑です。これが必要で、それに助けが必要な場合は、私たちにお知らせください。私は説明します。 @Hugoとして

はあなたが任意のString方法も任意のフォーマッタを使用することを許可されていない場合は、どちらも直接にも間接的に、その後、方法がない、と述べました。

いずれにしても、あなた自身でコードを書いてください(私はあなたがこれを常に意図していることを願っています。あなたの質問からは明らかではありません)。 Stack Overflowはコード作成サービスではなく、誰かがあなたのために書いたコードをコピーすることから何も学ぶことはできません。

関連する問題