0

次の行があります :|A|B|C|D|100|E|GEN|smsplus|11|11|11|の最初と最後の出現を削除したい|

が利用可能かどうかを最初に確認する必要|がありますfirst and last

これにより、いくつかの反対票が投じられると確信していますが、どうすればよいかわかりません。

編集

次のことも確認する必要があります。

A|B|C|D|100|E|GEN|smsplus|11|11|11| and |A|B|C|D|100|E|GEN|smsplus|11|11|11 and there is no 

その可能性が||あるため、同じことについて説明したくありませんでした。

貴重な時間をありがとう。

4

4 に答える 4

6

おそらく正規表現を使用できます:

^\\|(.*)\\|$

そして、次のように置き換え$1ます:

イデオンデモ

文字列の開始と終了が両方|でない場合、置換はありません。

|編集: 最後のコメントによると、文字列の先頭および/または末尾にある場合を削除する場合は、OR 演算子を使用します (|その質問には =P と思われるものが多すぎます):

^\\||\\|$

何も置換しない (空の文字列"")


EDIT2:

最初の正規表現が必要なものに近いが、複数のパイプを削除したい場合は、量指定子を追加します。

^\\|+(.*)\\|+$

2 番目の正規表現 (最初の編集) が必要であるが、複数のパイプを削除したい場合は、量指定子を再度追加してください!

^\\|+|\\|+$

どちらの場合も、置換文字列は同じままであることに注意してください

于 2013-09-30T07:35:49.063 に答える
3

使用indexOf()およびパッケージlastIndexOf()からjava.lang.String

    String s="|A|B|C|D|100|E|GEN|smsplus|11|11|11|";
    s=s.substring(s.indexOf("|"),s.lastIndexOf("|"));
    System.out.println(s);    //Prints A|B|C|D|100|E|GEN|smsplus|11|11|11
于 2013-09-30T07:29:18.153 に答える
2

Try,

String input = "|A|B|C|D|100|E|GEN|smsplus|11|11|11|";
input = input.substring(1, input.length()-1);

or use StringUtils.removeStart, removeEnd

StringUtils.removeStart(input, "|");
StringUtils.removeEnd(input, "|");

or

StringUtils.strip(input, "|");
于 2013-09-30T07:32:22.730 に答える