-2

私の現在の仕事では、置換関数を書かなければなりません。/sim/deviceファイル パス (例: ) を入力として受け取り、出力を生成する置換関数- sim.device.

Javaでは、私はreplace("/", "."). しかし、この関数は output を生成します.sim.device

私の質問は、「Javaには、私の目的を解決する関数はありますか、それとも自分で関数を書くべきですか?」ということです。効率的なJavaコードも提案できます。

4

5 に答える 5

8
String s = "/sim/device";
System.out.println( s.replace("/", ".").substring( 1));
于 2012-06-19T13:36:50.657 に答える
6

最初の文字を無視したい場合は、部分文字列を使用できます。

String text = "/my/sim/device";
String text2 = text.substring(1).replace('/','.');
System.out.println(text2);

版画

my.sim.device
于 2012-06-19T13:38:22.047 に答える
3

これを使用して試してみてください:

replaceAll("(?<=\\S+)/", ".").substring(1)
于 2012-06-19T13:37:20.843 に答える
0

単一の関数呼び出しではありませんが、ニーズを解決します。

public static void main(String[] args) {
    String path = "/sim/device";
    System.out.println(path.replace("/",".").substring(1,path.length()));

}
于 2012-06-19T13:44:21.473 に答える
0

replace 関数は、最初の文字列のすべてのインスタンスを 2 番目の文字列に置き換えます。この場合...

Input:  /sim/device
Output: .sim.device

「/」があるすべての場所に「.」があることに注意してください。文字列の最初の文字を削除することが目的の場合は、String.substring() メソッドを見てください。

ああ、一般的な推奨事項として、Java チュートリアルを読んでください。これは無料で、Oracle から Web 上で入手でき、Java の使用方法について優れた説明を提供します。そして、あなたがそれを完了していれば、すでにこの質問に答えているでしょう:)

于 2012-06-19T13:39:47.117 に答える