本ページには広告が含まれています。
指定した長さまで、文字列の左側または右側を他の文字列で埋めます。
- 構文
- String = strPad( input, length, str, type )
- 引数
- input 必須
- 入力文字列
- length 必須
- 埋めたあとの長さ
- str 省略可
- 埋める文字
- type 省略可
- 埋める方向
- 戻り値
- 指定文字で埋めた文字列
プログラム
//////////////////////////////////////////////////
// 【引数】
// input : 入力文字列
// length : 埋めたあとの長さ
// str : 埋める文字
// type : 埋める方向
// 【戻り値】
// 指定文字で埋めた文字列
//////////////////////////////////////////////////
FUNCTION strPad(input, length, str = " ", type = RIGHT)
DIM s = ""
SELECT type
CASE LEFT
FOR i = 1 TO CEIL((length - LENGTH(input)) / LENGTH(str))
s = s + str
NEXT
input = COPY(s, 1, length - LENGTH(input)) + input
CASE RIGHT
FOR i = 1 TO CEIL((length - LENGTH(input)) / LENGTH(str))
s = s + str
NEXT
input = input + COPY(s, 1, length - LENGTH(input))
SELEND
RESULT = input
FEND使い方
文字列全体の長さが10文字になるまでHelloの右側を*で埋めます。
PRINT strPad("Hello", 10, "*")- 結果
Hello*****
文字列全体の長さが15文字になるまでHelloの左側を*で埋めます。
PRINT strPad("Hello", 15, "*", LEFT)- 結果
**********Hello
12に対して4桁の0埋めをします。
PRINT strPad(12, 4, "0", LEFT)- 結果
0012
0埋めの処理はREPLACE関数 (スクリプト関数)とFORMAT関数 (スクリプト関数)で以下のように書き換えることもできます。
PRINT REPLACE(FORMAT(12, 4), " ", "0")- 結果
0012
第三引数のstrは1文字である必要はなく2文字以上の文字を指定することもできますが、lengthを超えてはみ出した部分は切り取られます。以下の例では、strに=*を指定していますが、20文字になるように最後の=*は*が切り取られています。
PRINT strPad("Hello", 10, "=*")- 結果
Hello=*=*=
PRINT strPad("Hello", 10, "=*", LEFT)- 結果
=*=*=Hello
関連記事
- BETWEENSTR関数 (スクリプト関数)
- 指定文字列間の文字列を返します。
- LENGTH関数 (スクリプト関数)
- 文字数もしくは配列サイズを返します。
- REPLACE関数 (スクリプト関数)
- 指定文字列を置換します。
- STRCONV関数 (スクリプト関数)
- 文字列を大文字・小文字、ひらがな・カタカナ、全角・半角の相互変換を行います。
- substrReplace関数 (自作関数)
- 文字列の一部を置換します。
