2

文字列行で部分文字列にする方法はありますか?

次のようなもの: String.substring(line_num);

それとも、インデックスを計算して手動で行う必要がありますか?

4

3 に答える 3

7

いいえ、それは不可能です。ただし、文字列をで分割してから\n、必要な行を取得することはできます。

String s = "First line\nSecond line\nThird line\nFourth line";
String[] lines = s.split("\n", -1);
System.out.println(lines[2]); // Third line

プラットフォームの行区切り文字がわからない場合は、を使用してくださいSystem.getProperty("line.separator")

または、行の範囲を取得する場合は、次を使用しますArrays.copyOfRange()

String s = "First line\nSecond line\nThird line\nFourth line";
String[] lines = s.split("\n", -1);
String[] lines2To4 = Arrays.copyOfRange(lines, 1, 4);
于 2012-08-30T13:00:33.593 に答える
2
public String substringLine(String text, int lineNumber){
    String[] textLines = text.split("[\r\n]+");
    return textLines.length < lineNumber ? textLines[lineNumber] : null;
}

これは、あなたが望むことをする簡単な方法です。

于 2012-08-30T13:02:51.353 に答える
2

組み込みの方法はわかりませんが、不要な割り当てなしで正しい行を見つける簡単で高速なプログラムを作成できます。

public static String substringByLine(String s, int n) {
    int pos = -1, start;
    do {
        pos = s.indexOf('\n', start = pos+1);
        if (pos < 0) {
            pos = s.length();
            break;
        }
    } while (n-- > 0);
    return n <= 0 ? s.substring(start, pos) : null;
}

ここに ideone へのリンクがあります。

于 2012-08-30T13:17:39.070 に答える