0

私は次のコードを持っており、PT14H01M00S から 14:01:00 に時間通りに値を置き換える必要があるため コードは最初の 2 文字を省略していますが、14H01M00S を取得します。文字列ビルダーを使用せずにそれを行う方法はありませんか?

String time = "PT14H01M00S";
String substring = time .substring(2);
substring.replace("H", ":");
substring.replace("M", ":");
substring.replace("S", "");

System.out.println(substring);
4

8 に答える 8

4

あなたはするのを忘れた

String time = "PT14H01M00S";
String substring = time .substring(2);
substring = substring.replace("H", ":");
substring = substring.replace("M", ":");
substring = substring.replace("S", "");

System.out.println(substring);

そのため、メソッドsubstringから返された新しい値を取得していませんreplace

ここでそれを実行して取得しました

ここに画像の説明を入力

于 2013-08-11T11:00:20.747 に答える
2

代わりにこのコードを使用してください:

 String time = "PT14H01M00S";
 String substring = time .substring(2);
 substring = substring.replace("H", ":");
 substring = substring.replace("M", ":");
 substring = substring.replace("S", "");
于 2013-08-11T10:59:46.080 に答える
2

これはうまくいくはずだと思います

String time = "PT14H01M00S".substring(2, time.length - 1).replace(/H|M/, ":");
于 2013-08-11T11:01:34.810 に答える
2

replaceメソッドは呼び出された文字列を変更せず、新しい文字列を返します。

だからあなたが欲しいのは:

String time = "PT14H01M00S";
String substring = time .substring(2);
substring = substring.replace("H", ":");
substring = substring.replace("M", ":");
substring = substring.replace("S", "");
于 2013-08-11T11:01:47.843 に答える
2

この種のタスクを実行するには、正規表現を使用することをお勧めします。これらは、テキストのパターンを検索および置換するのに非常に強力です。

于 2013-08-11T11:02:02.380 に答える