8

ここで文字列を切り捨てるのは、私が使用しているものです。

String test1 = "this is test truncation 1.pdf";     
String p1 = test1.substring(0, 10) + "...";
System.out.println(p1);

出力は'thisis te ...'出力が次のようになるようにファイル名拡張子にアクセスするにはどうすればよいですか:' this is te ... pdf'サブストリングメソッドを使用して最後の3文字にアクセスできますが、他のファイル拡張子は次のようになります。 .aspxなどの長さ4文字

「これはテスト切り捨て1.pdfです」が「これはte...pdf」になるように使用できる正規表現はありますか

4

7 に答える 7

7

次のような簡単な正規表現置換ですべてを実行できます。

test1.replaceAll("(.{0,10}).*(\\..+)","$1...$2")
于 2012-12-20T10:54:52.543 に答える
2

このようにします:

String[] parts = test1.split("\\.");
String ext = parts[parts.length-1];
String p1 = test1.substring(0, 10) + "..."+ext;
System.out.println(p1);
于 2012-12-20T10:49:53.870 に答える
2

あなたは単に使用することができます

test1.substring(0, 10) + "..." + test1.substring(test1.lastIndexOf('.'))
于 2012-12-20T10:52:25.837 に答える
0

あなたが使用することができます.+[.](.*?)

これは、ドット、ドット、任意の文字を含むすべての文字に一致しますが、貪欲ではないため、最初の部分は最後のドットに先行するすべての文字列を取得する必要があります。キャプチャ グループを使用すると、必要な部分を取得できます。

于 2012-12-20T10:48:31.437 に答える
0

この単純なタスクでは、正規表現は必要ありません

String p1 = test1.substring(0, 10) + "..." + test1.substring(test1.lastIndexof('.'));
于 2012-12-20T10:47:13.183 に答える
0

これを試して -

String test1 = "this is test truncation 1.pdf";
String[] test2 = test1.split("\\.");     
String p1 = test1.substring(0, 10) + "..." + test2[test2.length-1];
System.out.println(p1);
于 2012-12-20T10:47:17.993 に答える
0

私はこのアプローチを使用しますが、単一の「。」がある場合にのみ機能します。それもファイル名拡張子用です.Stringクラスの分割メソッドも使用できるので、これは初心者のアプローチかもしれません........

    String str="abcdefg ghi.pdf";
    int dotIndex=str.indexOf(".")+1;
    if(str.indexOf(" ", dotIndex)!=-1)
        System.out.println(str.substring(dotIndex,str.indexOf(" ", dotIndex) ));
    else
    {
        System.out.println(str.substring(dotIndex,str.length() ));
    }
于 2012-12-20T10:59:06.590 に答える