数値を任意の桁数の文字列に変換し、空の桁を0で埋める方法

数値を単純に文字列に変換するだけではなく、空白の桁を0で埋める方法を紹介します。

考え方としては、数値を任意の桁数の文字列に変換し、その文字列の空白部分を0に置き換えるといったものです。

マイナスの値を変換させた場合、マイナスの符号で1桁分使用します。

少数を変換させた場合、小数点で1桁分使用します。

 

数値を任意の桁数の文字列に変換し、空の桁を0で埋めるサンプル

n = 1234
str = FORMAT(n, 8) // 8桁の文字列に変換
str = REPLACE(str, " ", "0")
PRINT str

数値を任意の桁数の文字列に変換し、空の桁を0で埋める方法実行結果

 

FORMAT関数リファレンス

FORMAT関数のリファレンスをマニュアルから転載します。

戻値 = FORMAT( 数値, 幅, [小数点桁 or 16進指定] )
引数
 数値: 数値 もしくは文字
 幅: 出力される文字数 (数値より指定幅が大きい時は左側をスペースにて補完)
    数値ではなく文字が指定された場合は その文字で幅分を埋める
 小数点桁 or 16進指定: 表示する小数点桁数、 また -1 が指定された場合は16進数表記にする
戻値
 フォーマットされた文字列

 

REPLACE関数リファレンス

REPLACE関数のリファレンスをマニュアルから転載します。

戻値 = REPLACE( 文字列, 置換したい文字, 置換文字 )
 もしくは
戻値 = CHGMOJ( 文字列, 置換したい文字, 置換文字 )
引数
 文字列: 置換したい文字列を含んだ文字列
 置換したい文字: 置換したい文字列
 置換文字: 置換文字列
戻値
 置換された文字列
 (大文字,小文字の区別はしません)

全角の数字を数値に変換する方法

プログラムやパソコンに強い人なら全角の数字が文字列であることをご存知かと思います。

全角の数字では文字列として扱われてしまうので数値として扱いたい場合は数値型に変換させる必要があります。

UWSCではVAL関数を利用することで簡単に出来てしまいます。

全角の数字でも半角の数字の文字列でも数値型に変換することができるので便利です。

 

全角の数字を半角に変換するサンプル

単純に数値に変換させます。

n = VAL("20")

 

全角の数字を半角に変換するサンプルその2

数値に変換されたことを確かめるために加算させています。

n = VAL("20") + 2
PRINT n

全角の数字を数値に変換する方法実行結果

 

VAL関数リファレンス

VAL関数のリファレンスをマニュアルから転載します。

戻値 = VAL( 文字列, [エラー値] )
引数
 文字列: 数値に変える文字列
 エラー値: 数値に変換できない場合に返す値
戻値
 数値
 数値変換できない場合はエラー値を、デフォルトでは ERR_VALUE (-999999)を返す

 

文字列の最初と最後に含まれる空白を取り除く方法

文字列の最初と最後に含まれる空白を取り除くにはTRIM関数を利用します。

デフォルトでは全角のスペースに対応していませんが引数で指定することで対応できます。

空白以外にも制御文字も取り除けます。

 

文字列の最初と最後に含まれる空白を取り除くサンプル

このサンプルをコピーしてもタブが上手くコピーできないかもしれません。

DIM before[] = " 半角スペース ", " 全角スペース ", " タブ "
FOR i = 0 TO (LENGTH(before) - 1)
 PRINT before[i]
 PRINT TRIM(before[i], TRUE) // 全角を削除するように指定
 PRINT "" // 見やすいように空白の行を入れる
NEXT

文字列の最初と最後に含まれる空白を取り除く方法実行結果

 

TRIM関数リファレンス

TRIM関数のリファレンスをマニュアルから転載します。

戻値 = TRIM( 文字列, [全角空白] )
引数
 文字列: 文字列
 全角空白:
 FALSE: 全角の空白は含めない (デフォルト)
 TRUE: 全角の空白を含めて削除
戻値
 両端の空白と制御文字が取り除かれた文字列

 

指定した文字列に挟まれた文字列を取得する方法

指定した文字列に挟まれた文字列を取得するにはBETWEENSTR関数を利用します。

指定した文字列は前と後を別々に指定できるので[]に挟まれた文字列を取り出すといった用途に使えます。

該当する箇所が複数存在した場合、デフォルトでは最初の文字列が戻り値になります。

何番目に一致した文字列か指定することも可能です。

後ろから数えて何番目かといった指定も可能です。

 

指定した文字列に挟まれた文字列を取得するサンプルその1

before = "int a[10];"
after = BETWEENSTR(before, "[", "]")
PRINT after

指定した文字列に挟まれた文字列を取得する方法実行結果

 

 

指定した文字列に挟まれた文字列を取得するサンプルその2

該当する文字列が複数ある場合です。

今回は後ろから何番目の文字列か指定しました。

before = "(UWSC)(サンプル)(&)(画像認識)(テクニック)"
after = BETWEENSTR(before, "(", ")", -2)
PRINT after

指定した文字列に挟まれた文字列を取得する方法2実行結果

 

BETWEENSTR関数リファレンス

BETWEENSTR関数のリファレンスをマニュアルから転載します。

戻値 = BETWEENSTR( 文字列, 前文字, 後文字, [n個目, 数え方フラグ] )
引数
 文字列: 探す元になる文字列
 前文字: 得たい文字列の前にある文字列 (省略した場合は先頭から)
 後文字: 得たい文字列の後にある文字列 (省略した場合は最後まで)
 n個目: nを指定するとn個目の該当文字列を返す(マイナス値で指定すると後ろからサーチ)
 数え方フラグ:
   FALSE: n個目は後文字以降でカウント (デフォルト)
   TRUE: n個目は前文字以降でカウント 
戻値
 前文字と後文字に挟まれている文字列 (取得できなかった場合はEMPTYを返す)

 

文字列に含まれる任意の文字列を別の文字列に置き換える方法

文字列に含まれる任意の文字列を別の文字列に置き換えるためにはREPLACE関数を利用します。

置き換えしたい文字列が複数個含まれていても全部置き換えることが可能です。

 

文字列に含まれる任意の文字列を別の文字列に置き換えるサンプル

before = "★さん、こんにちは"
after = REPLACE(before, "★", "サンプル太郎")
PRINT after

文字列に含まれる任意の文字列を別の文字列に置き換える方法実行結果

 

 

REPLACE関数リファレンス

REPLACE関数のリファレンスをマニュアルから転載します。

戻値 = REPLACE( 文字列, 置換したい文字, 置換文字 )
 もしくは
戻値 = CHGMOJ( 文字列, 置換したい文字, 置換文字 )
引数
 文字列: 置換したい文字列を含んだ文字列
 置換したい文字: 置換したい文字列
 置換文字: 置換文字列
戻値
 置換された文字列
 (大文字,小文字の区別はしません)