私の現在の仕事では、置換関数を書かなければなりません。/sim/device
ファイル パス (例: ) を入力として受け取り、出力を生成する置換関数- sim.device
.
Javaでは、私はreplace("/", ".")
. しかし、この関数は output を生成します.sim.device
。
私の質問は、「Javaには、私の目的を解決する関数はありますか、それとも自分で関数を書くべきですか?」ということです。効率的なJavaコードも提案できます。
私の現在の仕事では、置換関数を書かなければなりません。/sim/device
ファイル パス (例: ) を入力として受け取り、出力を生成する置換関数- sim.device
.
Javaでは、私はreplace("/", ".")
. しかし、この関数は output を生成します.sim.device
。
私の質問は、「Javaには、私の目的を解決する関数はありますか、それとも自分で関数を書くべきですか?」ということです。効率的なJavaコードも提案できます。
String s = "/sim/device";
System.out.println( s.replace("/", ".").substring( 1));
最初の文字を無視したい場合は、部分文字列を使用できます。
String text = "/my/sim/device";
String text2 = text.substring(1).replace('/','.');
System.out.println(text2);
版画
my.sim.device
これを使用して試してみてください:
replaceAll("(?<=\\S+)/", ".").substring(1)
単一の関数呼び出しではありませんが、ニーズを解決します。
public static void main(String[] args) {
String path = "/sim/device";
System.out.println(path.replace("/",".").substring(1,path.length()));
}
replace 関数は、最初の文字列のすべてのインスタンスを 2 番目の文字列に置き換えます。この場合...
Input: /sim/device
Output: .sim.device
「/」があるすべての場所に「.」があることに注意してください。文字列の最初の文字を削除することが目的の場合は、String.substring() メソッドを見てください。
ああ、一般的な推奨事項として、Java チュートリアルを読んでください。これは無料で、Oracle から Web 上で入手でき、Java の使用方法について優れた説明を提供します。そして、あなたがそれを完了していれば、すでにこの質問に答えているでしょう:)