14

Trim()複数行の文字列で使用しようとしていますが、最初の行のみがTrim(). 各行の先頭からすべての空白を削除する方法がわかりません。

string temp1 = "   test   ";
string temp2 = @"   test
                    line 2 ";

MessageBox.Show(temp1.Trim());
//shows "test".

MessageBox.Show(temp2.Trim());
//shows "test"
        "       line2 ".

複数行の文字列でTrim/ TrimStart/を使用できますか?TrimEnd

4

7 に答える 7

18

複数行の文字列で Trim/TrimStart/TrimEnd を使用できますか?

はい。ただし、文字列全体をトリムするだけで、文字列のコンテンツ内の各行には注意を払いません。

各行をトリムする必要がある場合は、次のようにすることができます。

string trimmedByLine = string.Join(
                             "\n", 
                             temp2.Split('\n').Select(s => s.Trim()));
于 2013-01-07T23:04:57.370 に答える
13

これにより、各行がトリミングされます

temp2 = string.Join(Environment.NewLine, 
    temp2.Split(new []{Environment.NewLine},StringSplitOptions.None)
         .Select(l => l.Trim()));
于 2013-01-07T23:07:26.257 に答える
1
string temp3 = String.Join(
                    Environment.NewLine, 
                    temp2.Split(new char[] { '\n', '\r' },StringSplitOptions.RemoveEmptyEntries)
                         .Select(s => s.Trim()));
于 2013-01-07T23:06:41.870 に答える
0

これを行うには、正規表現を使用できます。

これを行う PHP (私は Mac を使用しているため、C# はありません) の preg_replace の例を次に示します。

<?php

$test = "   line 1     
     line 2 with blanks at end     
     line 3 with tabs at end        ";

print $test;

$regex = '/[ \t]*\n[ \t]*/';
$res = trim(preg_replace($regex, "\n", $test));
print $res;

正規表現 preg_replace は改行の前後の空白を削除し、トリムは先頭と末尾の空白を削除します。

C# Regex.Replace メソッドは、preg_replace のように機能するはずです。

于 2013-01-07T23:10:35.343 に答える
0

割る、削る、結合する

string[] lines = temp1.Split(new []{Environment.NewLine});
lines = lines.Select(l=>l.Trim()).ToArray();
string temp2 = string.Join(Environment.NewLine,lines);
于 2013-01-07T23:07:26.257 に答える