string.PadCenter

指定された文字数になるまで両側に指定された文字を埋め込むことで、この文字列を中央寄せした新しい文字列を作成します。


taiseiue | 2023-10-29

定義

名前空間: Alice
アセンブリ: Losetta.Runtime.dll
ソースコード: Alice.Core.String.cs

PadCenter(number,bool,bool)

指定された文字数になるまで両側に空白文字を埋め込むことで、この文字列を中央寄せした新しい文字列を作成します。

AliceScript
namespace Alice;
public string PadCenter(number totalWidth, bool padLeft = false, bool truncate = false);
引数
totalWidth 結果の文字列の文字数
padLeft 文字列を中央寄せするために埋め込む必要がある文字数が左右で異なる場合に、左寄せを優先する場合はtrue、右寄せを優先する場合はfalse。規定値はfalseです。
truncate 対象の文字列の長さがtotalWidthより長い場合に文字列を切り詰める場合はtrue、切り詰めずすべて表示する場合はfalse。規定値はfalseです。
戻り値
string 実行した結果の文字列

対応
AliceScript 3.0
AliceSister 3.0
Losetta 0.10

PadCenter(number,string,bool,bool)

指定された文字数になるまで両側に指定された文字を埋め込むことで、この文字列を中央寄せした新しい文字列を作成します。

AliceScript
namespace Alice;
public string PadCenter(number totalWidth, string paddingChar = " ", bool padRight = false, bool truncate = false);
引数
totalWidth 結果の文字列の文字数
paddingChar 埋め込む文字を含む文字列。この文字列の最初の文字が使用されます。
padLeft 文字列を中央寄せするために埋め込む必要がある文字数が左右で異なる場合に、左寄せを優先する場合はtrue、右寄せを優先する場合はfalse。規定値はfalseです。
truncate 対象の文字列の長さがtotalWidthより長い場合に文字列を切り詰める場合はtrue、切り詰めずすべて表示する場合はfalse。規定値はfalseです。
戻り値
string 実行した結果の文字列

対応
AliceScript 3.0
AliceSister 3.0
Losetta 0.10

説明

この関数は、文字列を特定の文字数の中で中央寄せします。

中央寄せとは、その文字列が全体のあたかも中央にあるかのように、指定された長さになるまで左右に文字を追加することです。追加される文字はpaddingCharで指定できます。この引数に長さが2以上の文字列が指定された場合は、先頭の1文字目が使用されます。

長さが偶数の文字列は、完全に中央に配置することができません。これは、文字列の「真ん中」を決定できないからです。このような場合、左右どちらかに一文字はみ出すことになりますが、規定では右に一文字はみ出します。これによって、出力した時に中央から一文字分右にずれて見えます。これを左寄せにする場合は、padLefttrueを指定してください。

規定ではこの関数は、文字列の長さがtotalWidthより大きい場合は、そのままの文字列を返します。文字列をtotalWidthまで切り詰めたい場合は、truncatetrueを指定してください。ただし、この切り詰めは文字列の右側に適用されます。

次の表は、totalWidth5に、paddingChar*を指定したとして、文字列がどのように中央揃えされるかを表しています。

対象の文字列 padLeftの値 truncateの値 結果
ABC 関係なし 関係なし *ABC*
AB true 関係なし *AB**
AB false 関係なし **AB*
ABCDEF 関係なし true ABCDE
ABCDEF 関係なし false ABCDEF

文字列を右寄せするにはstring.PadLeftメソッドを、左寄せするにはstring.PadRightメソッドを使用してください。

以下は、さまざまな文字列を15文字分の幅で中央寄せしています。 文字数が多い場合は、切り詰めています。

AliceScript
var tests = ["Hello,World","SomChai","Alice in Discord"];

foreach(string test in tests)
{
    print($"|{test.PadCenter(15,false,true)}|");
}

// 出力
// |  Hello,World  |
// |    SomChai    |
// |Alice in Discor|