18
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Talend】良く使いそうなTalendルーチン

Last updated at Posted at 2019-12-04

はじめに

使用したことがあったり使いそうなTalendルーチンについて使用方法を残していく。
※Talend7.1.1

各Talendルーチンの使い方

DataOperation

DTX

機能 10進数の引数を、16進数のString型に変換する。
戻り値 String
引数 int
使用例
結果
DataOperation.DTX(255) "FF"

FIX

機能 引数に1番近い整数を返す。
※小数第1位で四捨五入
戻り値 long
引数 double
使用例
結果
DataOperation.FIX(3.4567) 3
DataOperation.FIX(4.5678) 5
DataOperation.FIX(4.5678*100)/100.0 4.57

XTD

機能 16進数の引数を、10進数のInteger型に変換する。
戻り値 int
引数 String
使用例
結果
DataOperation.XTD("FF") 255

Mathematical

ABS

機能 引数の絶対値を返す。
戻り値 double
引数 double
使用例
結果
Mathematical.ABS(1.234) 1.234
Mathematical.ABS(-1.234) 1.234

NUM

機能 引数が自然数ならば「1」、そうでなければ「0」を返す。
戻り値 int
引数 String
使用例
結果
Mathematical.NUM("0") 1
Mathematical.NUM("1") 1
Mathematical.NUM("-2") 0
Mathematical.NUM("3.456") 0
Mathematical.NUM("abc") 0

RND

機能 0以上、引数未満のランダムな数を返す。
戻り値 double
引数 double
使用例
結果
Mathematical.RND(1) 0.9448526987263219
Mathematical.RND(3.14) 3.066423514279994

Numeric

convertImpliedDecimalFormat

機能 第2引数を、第1引数の形式の数値に変換する。
※9が数値、Vが小数点の位置。
 Vの後ろに並べた9の数で、小数点以下が何桁かを指定
戻り値 float
引数 ①string
②string
使用例
結果
Numeric.convertImpliedDecimalFormat("9V99","123") 1.23
Numeric.convertImpliedDecimalFormat("9V999","12345") 12.345

random

機能 第1引数から第2引数の間のランダムな数を返す。
戻り値 int
引数 ①int
②int
使用例
結果
Numeric.random(0,100) 59

sequence

機能 自動連番を返す。
※第1引数:連番の名前
 第2引数:開始の値
 第3引数:増加数(マイナス値設定で減少も可能)
戻り値 String
引数 ①string
②int
③int
使用例 式 :Numeric.sequence("s1",2,3)
結果:
行数 S1の値
1 2
2 5
3 8
4 11

removeSequence

機能 第1引数の名前で管理している自動連番を削除。
戻り値 なし
引数 String
使用例 ①Numeric.sequence("s1",2,3)
行数 S1の値
1 2
2 5
3 8

②Numeric.removeSequence("s1")
③Numeric.sequence("s1",2,3)
行数 S1の値
4 2
5 5
6 8

resetSequence

機能 第1引数で管理してきた自動連番の値を第2引数の値に再設定。
戻り値 なし
引数 ①String
②int
使用例 ①Numeric.sequence("s1",1,2)
行数 S1の値
1 1
2 3
3 5

②Numeric.resetSequence("s1",2)
③Numeric.sequence("s1",1,2)
行数 S1の値
4 4
5 6
6 8

Relational

isNull

機能 引数がnullであれば「1」、そうでなければ「0」を返す。
※Relational.ISNULLとは戻り値が異なるので注意
戻り値 int
引数 Object
使用例
結果
Relational.isNull(null) 1
Relational.isNull("") 0
Relational.isNull("abc") 0
Relational.isNull(123) 0

StringHandling

ALPHA

機能 引数の文字列の並びが、文字コードの昇順であれば「true」、そうでなければ「false」を返す。
戻り値 boolean
引数 String
使用例
結果
StringHandling.ALPHA("abcde") true
StringHandling.ALPHA("edcba") false
StringHandling.ALPHA("アイウエオ") true
StringHandling.ALPHA("オエウイア") false
StringHandling.ALPHA("12345") true
StringHandling.ALPHA("54321") false
StringHandling.ALPHA("123abc") true
StringHandling.ALPHA("abc123") false

CHANGE

機能 第1引数に含まれている、第2引数の正規表現に合致する文字列を、第3引数に置換。
戻り値 String
引数 String
使用例
結果
StringHandling.CHANGE("hello world!","world","guy") hello guy!
StringHandling.CHANGE("あ<LF>いう","\n","")
※<LF>は改行コードのラインフィード
あいう
StringHandling.CHANGE("abc123def","[a-z]","*") ***123***

EREPLACE

機能 第1引数に含まれている、第2引数の正規表現に合致する文字列を、第3引数に置換。
※StringHandling.CHANGEを呼んでいるだけの処理なのでCHANGEと全く同じ
戻り値 String
引数 String
使用例
結果
StringHandling.CHANGE("hello world!","world","guy") hello guy!
StringHandling.CHANGE("あ<LF>いう","\n","")
※<LF>は改行コードのラインフィード
あいう
StringHandling.CHANGE("abc123def","[a-z]","*") ***123***

FTRIM

機能 引数の先頭の空白(半角スペース,タブ)を削除。
※全角スペースは削除されないので注意
戻り値 String
引数 String
使用例
結果
StringHandling.FTRIM(" hello world!") hello world!

BTRIM

機能 引数の末尾の空白(半角スペース,タブ)を削除。
※全角スペースは削除されないので注意
戻り値 String
引数 String
使用例
結果
StringHandling.FTRIM("hello world! ") hello world!

TRIM

機能 引数の前後の空白(半角スペース,タブ)を削除。
※全角スペースは削除されないので注意
戻り値 String
引数 String
使用例
結果
StringHandling.TRIM(" hello world! ") hello world!

LEFT

機能 第1引数の左端から、第2引数番目までの文字列を取り出す。
戻り値 int
引数 ①String
②int
使用例
結果
StringHandling.LEFT("hello world!",5) hello
StringHandling.LEFT("123456789",3) 123
StringHandling.LEFT("あいうえお",4) あいうえ

RIGHT

機能 第1引数の右端から、第2引数番目までの文字列を取り出す。
戻り値 int
引数 ①String
②int
使用例
結果
StringHandling.LEFT("hello world!",6) world!
StringHandling.LEFT("123456789",3) 789
StringHandling.LEFT("あいうえお",4) いうえお

LEN

機能 引数の文字数を返す。
※第1引数がnullの場合は「-1」を返す
戻り値 int
引数 String
使用例
結果
StringHandling.LEN("hello world!") 12
StringHandling.LEN("") 0
StringHandling.LEN(null) -1

INDEX

機能 第1引数の文字列内に、第2引数が最初に出現する位置(インデックス番号)を返す。
戻り値 int
引数 ①String
②String
使用例
結果
StringHandling.INDEX("ABC-DEF","-") 3
StringHandling.LEFT("ABC-DEF",StringHandling.INDEX("ABC-DEF","-")) ABC
"ABC-DEF".substring(StringHandling.INDEX("ABC-DEF","-")+1) DEF

COUNT

機能 第1引数内に、第2引数の文字列がいくつ含まれているかを返す。
戻り値 int
引数 ①String
②String
使用例
結果
StringHandling.COUNT("hello world!","world") 1
StringHandling.COUNT("hello world!","o") 2

DOWNCASE

機能 引数の文字列を小文字に変換。
戻り値 String
引数 String
使用例
結果
StringHandling.DOWNCASE("Hello") hello

UPCASE

機能 引数の文字列を大文字に変換。
戻り値 String
引数 String
使用例
結果
StringHandling.DOWNCASE("Hello") HELLO

TalendDataGenerator

getFirstName

機能 ファーストネーム(英名)のサンプルデータを返す。
※リストの中からランダムで設定されるため、重複する可能性が高い
戻り値 String
引数 なし
使用例
結果
TalendDataGenerator.getFirstName() Abraham
TalendDataGenerator.getFirstName() Grover

getLastName

機能 ラストネーム(英名)のサンプルデータを返す。
※リストの中からランダムで設定されるため、重複する可能性が高い
戻り値 String
引数 なし
使用例
結果
TalendDataGenerator.getLastName() Lincoln
TalendDataGenerator.getLastName() Roosevelt

getUsCity

機能 アメリカの都市名のサンプルデータを返す。
※リストの中からランダムで設定されるため、重複する可能性が高い
戻り値 String
引数 なし
使用例
結果
TalendDataGenerator.getUsCity() Montgomery
TalendDataGenerator.getUsCity() Salt Lake City

getUsState

機能 アメリカの州名のサンプルデータを返す。
※リストの中からランダムで設定されるため、重複する可能性が高い
戻り値 String
引数 なし
使用例
結果
TalendDataGenerator.getUsState() Arizona
TalendDataGenerator.getUsState() New Jersey

getUsStateId

機能 アメリカの州の略号のサンプルデータを返す。
※リストの中からランダムで設定されるため、重複する可能性が高い
戻り値 String
引数 なし
使用例
結果
TalendDataGenerator.getUsStateId() AZ
TalendDataGenerator.getUsStateId() NJ

TalendDate

addDate

機能 第1引数に、第3引数の単位で、第2引数だけ加算した日時を返す。
第3引数 単位
yyyy 年(西暦)
MM
dd
HH
mm
ss
SSS ミリ秒
戻り値 Date
引数 ①Date
②int
③String
使用例
結果
TalendDate.addDate(new Date(0),1,"MM")
※new Date(0) = 1970-01-01 09:00:00.000
1970-02-01 09:00:00.000
TalendDate.addDate(new Date(0),1,"SSS") 1970-01-01 09:00:00.001

addDate

機能 第1引数に、第4引数の単位で、第3引数だけ加算した日時を日付文字列で返す。
※第1引数と結果の日付文字列のフォーマットを第2引数で指定
※第2引数で使用できるフォーマットは、formatDate関数の備考を参照
第4引数 単位
yyyy 年(西暦)
MM
dd
HH
mm
ss
SSS ミリ秒
戻り値 String
引数 ①String
②String
③int
④String
使用例
結果
TalendDate.addDate("2019-11-18","yyyy-MM-dd",1,"MM") 2019-12-18
TalendDate.addDate("2019/11/18 11:35:12","yyyy/MM/dd HH:mm:ss",10,"mm") 2019/11/18 11:45:12

compareDate

機能 第1引数と第2引数の日付を第3引数のフォーマットで変換した上で比較し結果を返す。
※第3引数で使用できるフォーマットは、formatDate関数の備考を参照

※第1引数の方が古い日付の場合「-1」を返す
※第1引数と同じ日付の場合「0」を返す
※第1引数の方が新しい日付の場合「1」を返す
戻り値 int
引数 ①Date
②Date
③String
使用例
結果
TalendDate.compareDate(new Date(1546268400000),new Date(0),"yyyy")
※new Date(1546268400000)=2019-01-01
※new Date(0)=1970-01-01 09:00:00
1
TalendDate.compareDate(new Date(0),new Date(1),"yyyy-MM-dd") 0
TalendDate.compareDate(new Date(0),new Date(1),"yyyy-MM-dd HH:mm:ss.SSS") -1

compareDate

機能 第1引数と第2引数の日付を第3引数のフォーマットで変換した上で比較し結果を返す。

※第1引数の方が古い日付の場合「-1」を返す
※第1引数と同じ日付の場合「0」を返す
※第1引数の方が新しい日付の場合「1」を返す
戻り値 int
引数 ①Date
②Date
使用例
結果
TalendDate.compareDate(new Date(1),new Date(0)) 1
TalendDate.compareDate(new Date(0),new Date(0)) 0
TalendDate.compareDate(new Date(0),new Date(1)) -1

diffDate

機能 第1引数と第2引数の差を第3引数の単位で返す。
※第3引数より小さい単位は切り捨てた上で差を計算
第3引数 単位
yyyy 年(西暦)
MM
dd
HH
mm
ss
SSS ミリ秒
戻り値 long
引数 ①Date
②Date
③String
使用例
結果
TalendDate.diffDate(new Date(1574002800000L),new Date(1540966472379L),"MM")
※new Date(1540966472379)=2018-10-31 15:14:32.379
※new Date(1568732400000L)=2019-09-18 00:00:00.000
11
TalendDate.diffDate(new Date(1568732400000L),new Date(1540966472379L),"yyyy") 1

diffDate

機能 第1引数と第2引数の差を日単位で返す。
※時間以下の単位は切り捨てた上で差を計算
戻り値 long
引数 ①Date
②Date
使用例
結果
TalendDate.diffDate(new Date(1568732400000L),new Date(1540966472379L))
※new Date(1568732400000L)=2019-09-18 00:00:00.000
※new Date(1540966472379L)=2018-10-31 15:14:32.379
321

diffDateFloor

機能 第1引数と第2引数の差を第3引数の単位で返す。
※第3引数は「"yyyy"」か「"MM"」のどちらかを指定
※差を計算した上で第3引数より小さい単位を結果から切り捨てる
戻り値 long
引数 ①Date
②Date
③String
使用例
結果
TalendDate.diffDateFloor(new Date(1568732400000L),new Date(1540966472379L),"yyyy")
※new Date(1568732400000L)=2019-09-18 00:00:00.000
※new Date(1540966472379L)=2018-10-31 15:14:32.379
0
TalendDate.diffDateFloor(new Date(1574002800000L),new Date(1540966472379L),"yyyy")
※new Date(1574002800000L)=2019-11-18 00:00:00.000
※new Date(1540966472379L)=2018-10-31 15:14:32.379
1

formatDate

機能 第2引数を第1引数の日付形式の文字列に変換。
※Java仮想マシンのデフォルトのTimeZoneが設定される

【日時】2018-09-06 15:01:02:37.037 GMT+09:00
第1引数 意味 結果
G 紀元 西暦
yy 18
yyyy 2018
M 9
MM 09
MMMM 9月
w 年における週 36
W 月における週 2
D 年における日 249
d 月における日 6
dd 月における日 06
F 月における曜日 1
E 曜日の名前
EEEE 曜日の名前 木曜日
u 曜日の番号(1=月曜 … 7=日曜) 4
a 午前/午後 午後
H 一日における時(0-23) 15
HH 一日における時(00-23) 15
k 一日における時(1-24) 15
kk 一日における時(01-24) 15
K 午前/午後の時(0-11) 3
KK 午前/午後の時(00-11) 03
h 午前/午後の時(1-12) 3
hh 午前/午後の時(01-12) 03
m 1
mm 01
s 2
ss 02
S ミリ秒 37
SSS ミリ秒 037
z タイムゾーン(一般的) GMT+09:00
Z タイムゾーン(RFC 822) +0900
X タイムゾーン(ISO 8601) +09
戻り値 String
引数 ①String
②Date
使用例
結果
TalendDate.formatDate("yyyy-MM-dd HH:mm:ss.SSS",new Date(1540966472379L)) 2018-10-31 15:14:32.379
TalendDate.formatDate("yyyyMMdd",new Date(1540966472379L)) 20181031
TalendDate.formatDate("yyyy/MM/dd(E)",new Date(1540966472379L)) 2018/10/31(木)

formatDateInUTC

機能 第2引数を第1引数の日付形式の文字列に変換。
※TimeZoneにはUTCが設定される

【日時】2018-09-06 06:01:02:37.037 UTC
第1引数 意味 結果
G 紀元 西暦
yy 18
yyyy 2018
M 9
MM 09
MMMM 9月
w 年における週 36
W 月における週 2
D 年における日 249
d 月における日 6
dd 月における日 06
F 月における曜日 1
E 曜日の名前
EEEE 曜日の名前 木曜日
u 曜日の番号(1=月曜 … 7=日曜) 4
a 午前/午後 午前
H 一日における時(0-23) 6
HH 一日における時(00-23) 06
k 一日における時(1-24) 6
kk 一日における時(01-24) 06
K 午前/午後の時(0-11) 6
KK 午前/午後の時(00-11) 06
h 午前/午後の時(1-12) 6
hh 午前/午後の時(01-12) 06
m 1
mm 01
s 2
ss 02
S ミリ秒 37
SSS ミリ秒 037
z タイムゾーン(一般的) UTC
Z タイムゾーン(RFC 822) +0000
X タイムゾーン(ISO 8601) Z
戻り値 String
引数 ①String
②Date
使用例
結果
TalendDate.formatDateInUTC("yyyy-MM-dd HH:mm:ss.SSS",new Date(1540966472379L)) 2018-10-31 06:14:32.379
TalendDate.formatDateInUTC("yyyyMMdd",new Date(1540966472379L)) 20181031
TalendDate.formatDateInUTC("yyyy/MM/dd(E)",new Date(1540966472379L)) 2018/10/31(木)

getCurrentDate

機能 実行日時をDate型で取得。
戻り値 Date
引数 なし
使用例
結果
TalendDate.getCurrentDate() Thu Nov 21 14:54:25 GMT+09:00 2019
TalendDate.formatDate("yyyy/MM/dd(E) HH:mm:ss", TalendDate.getCurrentDate()) 2019-11-21(木) 14:59:01

getDate

機能 実行日時を引数で指定した日付形式の日付文字列で返す。
※日付形式の指定に使用する文字列は「formatDate」を参照
戻り値 String
引数 String
使用例
結果
TalendDate.getDate("yyyy-MM-dd") 2019-11-21

getFirstDayOfMonth

機能 引数で指定した日付の月初を取得。
※時間以下の単位は引数のまま
戻り値 Date
引数 Date
使用例
結果
TalendDate.getFirstDayOfMonth(TalendDate.getCurrentDate()) Fri Nov 01 15:44:12 GMT+09:00 2019
TalendDate.formatDate("yyyy-MM-dd HH:mm:ss", TalendDate.getFirstDayOfMonth(TalendDate.getCurrentDate())) 2019-11-01 15:47:28

getLastDayOfMonth

機能 引数で指定した日付の月末を取得。
※時間以下の単位は引数のまま
戻り値 Date
引数 Date
使用例
結果
TalendDate.getLastDayOfMonth(TalendDate.getCurrentDate()) Sat Nov 30 15:49:34 GMT+09:00 2019
TalendDate.formatDate("yyyy-MM-dd HH:mm:ss", TalendDate.getLastDayOfMonth(TalendDate.getCurrentDate())) 2019-11-30 15:48:44

getRandomDate

機能 第1引数と第2引数の間のランダムな日付を取得。
※引数の日付文字列は「yyyy-MM-dd」の形式で指定
戻り値 Date
引数 ①String
②String
使用例
結果
TalendDate.getRandomDate("2007-01-01","2008-12-31") Tue Nov 11 06:01:07 GMT+09:00 2008
TalendDate.formatDate("yyyy-MM-dd", TalendDate.getRandomDate("2007-01-01","2008-12-31")) 2007-09-15

isDate

機能 第1引数が第2引数の日付形式の日付に変換できるか返す。
※日付形式誤りだけでなく存在しない日付もfalseとなる
戻り値 boolean
引数 ①String
②String
使用例
結果
TalendDate.isDate("2019-11-20", "yyyy-MM-dd") true
TalendDate.isDate("2019/11/20", "yyyy-MM-dd") false
TalendDate.isDate("2019-02-29", "yyyy-MM-dd") false

parseDate

機能 第1引数の日付形式の第2引数の日付文字列をDate型に変換する。
※区切り文字の種類が異なっていても正常に動作する
戻り値 Date
引数 ①String
②String
使用例
結果
TalendDate.parseDate("yyyy-MM-dd", "2019-11-20") Wed Nov 20 00:00:00 GMT+09:00 2019
TalendDate.isDate("2019-11-20", "yyyy-MM-dd") ? TalendDate.parseDate("yyyy-MM-dd", "2019-11-20") : null Wed Nov 20 00:00:00 GMT+09:00 2019
TalendDate.isDate("2019-02-29", "yyyy-MM-dd") ? TalendDate.parseDate("yyyy-MM-dd", "2019-02-29") : null null
TalendDate.isDate("2019/11/20", "yyyy-MM-dd") ? TalendDate.parseDate("yyyy-MM-dd", "2019/11/20") : null null
TalendDate.parseDate("yyyy-MM-dd", "2019_11_20") Wed Nov 20 00:00:00 GMT+09:00 2019
TalendDate.parseDate("yyyy-MM-dd", "20191120") エラー
※java.lang.StringIndexOutOfBoundsException

TalendString

getAsciiRandomString

機能 ランダムな英数字を、引数の数並べた文字列を返す。
戻り値 String
引数 int
使用例
結果
TalendString.getAsciiRandomString(6)) c2Lk3D
TalendString.getAsciiRandomString(6)) 4W9eUBpkn

replaceSpecialCharForXML

機能 引数の文字列の特殊文字を同等のXML文字で置き換えた文字列を返す。
変換前 変換後
& &amp;
< &lt;
> &gt;
' &apos;
" &quot;
戻り値 String
引数 String
使用例
結果
TalendString.replaceSpecialCharForXML("A&\"BCD'") &lt;MEMO&gt;A&amp;&quot;BCD&apos;&lt;/MEMO&gt;

talendTrim

機能 第1引数の先頭または末尾にある、第2引数の文字を取り除く。
※第3引数の値が
 「1」の場合は先頭を削除。
 「-1」の場合は末尾を削除。
 「0」の場合は、先頭末尾の両方を削除。
戻り値 String
引数 ①String
②char
③int
使用例
結果
TalendString.talendTrim("***あいうえお***",'*',-1) ***あいうえお
TalendString.talendTrim("***あいうえお***",'*',1) あいうえお***
TalendString.talendTrim("***あいうえお***",'*',0) あいうえお
TalendString.talendTrim("xあxいxうxえxおx",'x',0) あxいxうxえxお
18
14
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?