本ページには広告が含まれています。
指定した長さまで、文字列の左側または右側を他の文字列で埋めます。
- 構文
- 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