strPad関数

本ページには広告が含まれています。

指定した長さまで、文字列の左側または右側を他の文字列で埋めます。

構文
  1. String = strPad( input, length, str, type )
引数
input 必須
入力文字列
length 必須
埋めたあとの長さ
str 省略可
埋める文字
type 省略可
埋める方向
戻り値
指定文字で埋めた文字列

プログラム

UWSC
//////////////////////////////////////////////////
// 【引数】
//   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の右側を*で埋めます。

UWSC
PRINT strPad("Hello", 10, "*")
結果
プレーンテキスト
Hello*****

文字列全体の長さが15文字になるまでHelloの左側を*で埋めます。

UWSC
PRINT strPad("Hello", 15, "*", LEFT)
結果
プレーンテキスト
**********Hello

12に対して4桁の0埋めをします。

UWSC
PRINT strPad(12, 4, "0", LEFT)
結果
プレーンテキスト
0012

0埋めの処理はREPLACE関数 (スクリプト関数)FORMAT関数 (スクリプト関数)で以下のように書き換えることもできます。

UWSC
PRINT REPLACE(FORMAT(12, 4), " ", "0")
結果
プレーンテキスト
0012

第三引数のstrは1文字である必要はなく2文字以上の文字を指定することもできますが、lengthを超えてはみ出した部分は切り取られます。以下の例では、str=*を指定していますが、20文字になるように最後の=**が切り取られています。

UWSC
PRINT strPad("Hello", 10, "=*")
結果
プレーンテキスト
Hello=*=*=

UWSC
PRINT strPad("Hello", 10, "=*", LEFT)
結果
プレーンテキスト
=*=*=Hello

関連記事

BETWEENSTR関数 (スクリプト関数)
LENGTH関数 (スクリプト関数)
REPLACE関数 (スクリプト関数)
STRCONV関数 (スクリプト関数)
substrReplace関数 (自作関数)