1

「Stack Overflow」と「Stack-Overflow」など、2 つの文字列があります。現在、文字列一致メソッドに取り組んでおり、いくつかの文字列をフォーマットする必要があります。

ハイフンを除くすべての特殊文字は、文字列の末尾にする必要があります。したがって、「Stack Overflow」は「Stack」になり、「Stack-Overflow」は同じままです。

私はすでにstr.split(" ", 1)[0];, str.replaceAll("\\s", "")and を使用str.replaceAll("[^a-zA-Z0-9]", "");しましたが、ハイフンとは連携しません。

どの交換方法を使用すればよいですか?

4

3 に答える 3

3

[^\\w-]+正規表現を使用

    String str = "Stack-Overflow";
    String str2 = str.split("[^\\w-]+")[0];     
    System.out.println(str2);

対象:Stack-Overflow出力Stack-Overflow

対象:Stack Overflow出力Stack

于 2013-09-10T08:17:19.400 に答える
0

.split("\\W")[0]動作しているようです。

これ

  System.out.println("Hello-World".split("\\W")[0]);

ここから「Hello」を出力するだけで、

  System.out.println("Hello World".split("\\W")[0]);

同じことをしますが、

  System.out.println("Hello123123orld".split("\\W")[0]);

ご想像のとおり、「Hello123123orld」が出力されます。

于 2013-09-10T07:59:01.090 に答える