文字列を切り捨てたり、空白で埋めたりして、固定長(C#の場合)に一文字を設定する方法はありますか?例えばCで文字列を固定長に切り詰める方法#
:
string s1 = "abcdef";
string s2 = "abc";
長さ5の両方を設定した後、我々は持っている必要があります。
"abcde"
"abc "
文字列を切り捨てたり、空白で埋めたりして、固定長(C#の場合)に一文字を設定する方法はありますか?例えばCで文字列を固定長に切り詰める方法#
:
string s1 = "abcdef";
string s2 = "abc";
長さ5の両方を設定した後、我々は持っている必要があります。
"abcde"
"abc "
必要なのは、(source
がnull
ではないことを提供する)Substring
続いPadRight
です:
source
場合 string source = ...
int length = 5;
string result = source.PadRight(length).Substring(0, length);
はnull
することができ:
string result = source == null
? new string(' ', length)
: source.PadRight(length).Substring(0, length);
あなたはstring.PadLeft
またはstring.PadRight
https://msdn.microsoft.com/en-us/library/66f6d830(v=vs.110).aspx
ちょうど好奇心から、文字列の実際の長さより短い長さに文字列を埋め込むとどうなりますか? –
これは、埋め込みのために機能します。 – Graham
@Grahamは文字列の長さを取得し、 'Substring'を使用しますか?これはフレームワーク –
を使用することができますが、あなたは s1.PadLeftを試してみました(5)。
あなたは、スペース
s1.PadLeft(6, '.');
以外の何かがあなたを与えるだろうしたい場合、あなたはまた、パディングのための文字を指定することができます「ABCDEFを」両方を行うには
:
var s1 = "1234567890";
var s2 = s1.SubString(5).PadLeft(5);
にあるのはあまりにも些細なので、あらかじめ作成されたメソッドはありません申し訳ありませんが、 's1.SubString(5).PadLeft(5);'は '67890'です。 *例外の場合は 's1 =" 123 "' –
private string fixedLength(string input, int length){
if(input.Length > length)
return input.Substring(0,length);
else
return input.PadRight(length, ' ');
}
組み込みとカスタムの2つのオプションがあります。
あなたはこのように、String.Formatの機能を使用することができます:str
はフォーマットしたい文字列です
String.Format("{0:-5", str);
。 {0}
はその文字列を表し、は5文字の文字列で左揃えを指定します。右揃えにするには、単に:5
を使用します。
カスタムライナーはstr.PadRight(5 - str.Length);
です。私はそれが他の答えよりも効率的だと信じています。文字列str
はnull
かもしれない場合は、
str = str?.PadRight(5- str.Length) ?? new string(' ', 5);
https://msdn.microsoft.com/en-us/library/system.string.format.aspxを使用することができます?? – Ingenioushax