本文介绍: SWIFT MX报文基础函数与Java语言中String方法对照理解前言一、SWIFT是什么?二、SWIFT MX是什么?二、报文基础函数与Java语言中String方法对照表总结前言随着2012年MX报文启用公司业务类报文也要求从MT转MX进行报文传递。奈何我英语一向不好,只能想法子变通的方式理解转换规则,此处我仅列出我理解的MX函数与Java语言函数如何类比理解的,若有偏差还望给位刷到该篇博文大佬能够在留言区与我一起交流。一、SWIFT是什么?SWIFT即Society fo


前言

随着2012年MX报文的启用公司业务类报文也要求从MT转MX进行报文传递。奈何我英语一向不好,只能想法子变通的方式理解转换规则,此处我仅列出我理解的MX函数与Java语言函数如何类比理解的,若有偏差还望给位刷到该篇博文的大佬能够在留言区与我一起交流。


一、SWIFT是什么?

SWIFT即Society for Wirldwide Interbank Financial Telecommunications 是环球同业银行金融电讯协会的简称,主要只能是在群求银行系统直接传递结算信息博主的理解是电讯二字应理解为通讯,那么SWIFT即可理解为通讯平台,类似于微信和QQ,制定相应的通讯规范,那么SWIFT也是为国际电报文制定相应的通讯规范的一种特殊网络环境下的一种通讯工具

二、SWIFT MX是什么?

SWIFT MX 即SWIFT XML格式的电讯报文。

二、报文基础函数与Java语言中String方法对照表

函数名称 String的方法 函数描述 示例
AppendTo (Value, Target) tager.concat(String str) value追加tager后面 AppendTo (“123”, “456”) return “456123 “
AppendToNextLine (Value, Target) (value+tager).toString() value追加tager前 AppendTo (“123”, “456”) return “123456”
ReturnFirstLineEmpty(Target,n) 返回为空的那行的行标 ReturnFirstLineEmpty(Target,n) 若n为3,第2行为空则返回2
Concatenate (Value1, Value2, Value3, … ValueN) (Value1, Value2, Value3, … ValueN) .toString() 将 Value1, Value2, Value3, … ValueN拼接成一个字符 Concatenate (“1”,“2”, “3”, “n”) return 123n
Copy [(Value)] 将值的属性或者路径复制对应目录 Copy [(boolean a)] 若a=falsereturn false
DecimalSignificantDigits (Value) 小数点后的有效小数转为十进制数字 DecimalSignificantDigits (“123.4560000”) return 456
DeleteChar (Value, FromPosition, ToPosition) 删除FromPosition 和ToPsition之间的值 DeleteChar (“2”,“123”, “324”) return 14
DeletePattern (Value, Pattern) 删除制定的元素 DeletePattern (“2”, “123”) return 13
EqualTo (also used “=”) equals(String str) 检查两个是否相等
EquivalentCode (Value, SourceCodeList, TargetCodeList) contains(CharSequence str) 字符串或列表中是否包含value如果包含则返回TargetCodeList 如果不包含则返回null 若EquivalentCode (“2”, “123”, “234”) return 234 ,若EquivalentCode (“2”, “143”, “234”) return null
ExtractBetweenPattern (Value, FromPattern, {ToPattern1, ToPattern2, … ToPatternN}) 截取表中FromPattem到Value之间的值 ExtractBetweenPattern (“1”, “2”, {“2341”, “13452”, “234”}) return {“34”,“345”,“”}
ExtractFromPattern (Value, [FromPosition], FromPattern) str.substring(begin + 2, last) 如果字符串中包含一个FromPosition 就返回FromPosition如果包含多个FromPosition则返回第一个FromPosition到最后一个FromPosition之间的值 若 ExtractFromPattern (“234”, [“2”], “2345”) return 2345 若ExtractFromPattern (“23452”, [“2”], “2345”) return 345
ExtractLines (Value, FromPattern, [ContinuationPattern]) String str1 = str.substring(0, str.indexOf(“_”)); String str2 = str.substringstr1.length()+1, str.length()); 截取字符FromPattern之后的值且字符长度不可超过35若少于35则用ContinuationPattern替换,若超过35则截取换行符,或找不到FromPattern这个值则返回null 若ExtractLines (“22222123222222 33”, “2”, [“3”]) return 222212322222 3 若ExtractLines (“22222123222222 3323”, “2”, [“3”]) return 2222123222222 3 若ExtractLines (“22222123222222333”, “4”, [“3”]) return null
ExtractLinesAsIs(Value, FromPattern, [ContinuationPattern]) String str1 = str.substring(0, str.indexOf(“_”)); String str2 = str.substring(str1.length()+1.trim(), str.length()) 截取字符FromPattern之后的值且字符长度不可超过35若少于35则用ContinuationPattern替换,若超过35则截取换行符,或找不到FromPattern这个值则返回null 与ExtractLines 不同的是超出换行符的值不能直接替换为空 若ExtractLinesAsIs(“22222123222222 33”, “2”, [“3”]) return 2222123222223 若ExtractLinesAsIs(“22222123222222 3323”, “2”, [“3”]) return 22221232222223 若ExtractLinesAsIs(“22222123222222333”, “4”, [“3”]) return null
ExtractPattern (Value, Pattern) int strStartIndex = str.indexOf(“U”);int strEndIndex = str.indexOf(“D”);String result = str.substring(strStartIndex, strEndIndex).substring(strStart.length()); 返回Pattern在value第一次出现的值 若ExtractPattern(“USD1500”, “USD”)
ExtractTillPattern (Value, [FromPosition], TillPattern) String str = “ABC/DEF/GHI”; String str1 = str.substring(0, str.indexOf(“/”)); 在源值中提取个字符串,直到TillPattern。如果(可选)FromPosition存在,那么该函数将返回从FromPosition开始的源值中的字符串,直到TillPattern。 若ExtractTillPattern(ABC/DEF/GHI, “/”)返回字符串ABC 若ExtractTillPattern(ABC/DEF/GHI, 5, “/”)返回字符串DEF返回的字符串不包括TillPattern。
DeleteExtractLines(Value, FromPattern, [ContinuationPattern]) 从Value中删除使用ExtractLines函数提取信息 若DeleteExtractLines(“22222123222222 3323”, “22222123222222 3323456”, [ExtractLines (“22222123222222 3323”, “2”, [“3”]) ]) return 23456
DeleteLine(Element,LineNumber) 多行元素中,使用LineNumber删除行,并返回删除行并由下一行替换元素(如果有的话)。 若 DeleteLine(“1223”,1) return null
FirstOccurrenceOf (Element) indexOf(String str) 返回可能多次出现的元素的第一次出现。 若 FirstOccurrenceOf (“123”) return 1
GreaterEqualTo (also used “≥”) “≥” 运算符大于等于 2 GreaterEqualTo 3 return false
GreaterThan (also used “>”) “>” 运算符大于 4 GreaterThan 3 return true
Ignore 忽略意味着没有语义单位翻译 忽略转换
IsAbsent (Value) 检查源值是否缺失为空。它返回一个布尔值(True或False)。
IsAbsentPattern (Value, Pattern) to_date() 检查时间格式是否符合,或者规定的格式是否匹配 若IsAbsentPattern(DateTime, “HH:MM:SS.”) return true 若 IsAbsentPattern(DateTime, “T”HH:MM:SS) return false
IsAccount(Value) 检查格式是否为账号格式 若value以/CH开头或不以/开头则返回真反之返回假 若 IsAccount(“/CH85588”) return ture
IsAlphabetic (Value) isAlphabetic() 检查源值的所有字符是否为字母 若 IsAlphabetic (“123”) return false
IsAlphabeticOrNumeric (Value) AlphanumericExample 检查源值得所有字符是否为数字字母 若IsAlphabeticOrNumeric (“123456www_”) return false
IsBEI (Value) 检查源值是否为有效的BEI
IsBIC (Value) 检查源值是否为有效的BIC 每个银行的BIC不一样,是有效BIC则返回true 反之则返回false
IsCountryCode (Value) 检查源值是否为有效的国家代码 每个国家的code不一样,是有效CoutryCode则返回true 反之则返回false
IsEmpty (Value) IsEmpty () 检查源值是否为空 源值为空则返回ture
IsIBAN (Value) 检查源值是否为有效的IBAN (根据ISO标准3166)
IsPresent (Element) IsNotEmpty () 检查元素是否存在且非空。
IsPresentPattern (Value, Pattern) contains(CharSequence s); 检查模式是否存在于源值中 若 IsPresentPattern(“2007-12-08T23:12:01”, “T”) return ture
Length (Value ) Length () 返回源值的长度 Length (“123456”) return 6
LessEqualTo (also used “≤”) “≤” 运算符小于等于 2 LessEqualTo 3 return true
LessThan (also used “<”) “<” 运算符小于 2 LessThan 3 return true
NumberOfOccurrences (Element) 返回源元素的出现次数
OccurrenceOf (Element) 返回可以复杂结构指定重复源元素的出现号(出现位置)
PadLeft (Value, Character, Length) 获取到指定长度的值之前,返回用指定字符向左侧填充值之后的结果。如果值的长度大于或等于指定的长度,则不添加填充字符。 若PadLeft (“123456”, “4”, “1”)return 12
ReplacePattern (Value, Pattern1, Pattern2) str.replaceAll( Pattern1, Pattern2); 将源值中的Pattern1替换为Pattern2后返回结果 若 ReplacePattern (“123456”, “2”, “6”) return 163456
SecondOccurrenceOf (Element) 返回元素的第二个匹配项,该元素可能有多个匹配项。
SignificantDigits (Value) 返回源值(十进制)中的有效位数 若SignificantDigits (“0120.4560000”) return 6 解析:有效十进制为120.456
SplitInLines (Value, NumberOf Characters, [ContinuationPattern]) split(Stringregex) 按指定字符数的行拆分源值的结果。如果源值拆分多行,则该函数会添加回车换行符(CRLF),用于在MT字段分隔连续行,每行末尾多行最后一行除外。在源值拆分多行的相同情况下,可选的ContinuationPattern(如果存在)将写入第一行之后每行的开头。
StartWith (“Value”) 检查函数左边的值是否以模式开始
Stop translation 停止翻译
Substring (Value, From Position, [Length]) substring(FromPosition,length) 返回截取的字符串 Substring (“123456”, “3”, [2]) return 45
SumOfOccurrences (Element) 返回所有元素源值的和 SumOfOccurrences (“123”) return 6
TrimLeft (Value, Character) 从值的最左边开始删除指定字符后的结果,直到遇到与字符参数不同的字符为止。 若TrimLeft (“1234”, “3”) return 12
TrimRight (Value, Character) 删除指定字符后的结果,从值的最右侧开始,直到遇到与字符参数不同的字符为止。 若TrimRight (“1234”, “3”) return 34
Truncate(Value, Position ) 返回位置参数之后的源值截断后的结果 若Truncate(“123456”, 3) return 3456
WithinList (Value, CodeList) 检查源代码值是否存在代码列表

总结

每个MX函数都需要结合相应的注释去理解,如有偏差还望大佬们再评论区帮忙指正,祝愿各位大佬转换报文时都能顺风顺水。

原文地址:https://blog.csdn.net/qq_16428331/article/details/124496630

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_24260.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注