マネージ COBOL では、次の操作を行うことができます。
マネージ COBOL には、マネージ コード文字列タイプに相当する事前定義の文字列タイプがあります。このタイプ名は、データ項目を宣言する場合や、クラス名が予測されるどの場所でも使用します。次に例を示します。
01 obj-string string.
文字列オブジェクトは、通常、New メソッドを使用して構築されません。値を単純に文字列参照に割り当てることができ、コンパイラは構築を自動で行います。文字列の値は、リテラル値、または英数字、各国文字のデータ項目やグループ データ項目のいずれかにこの方法で設定できます。次に例を示します。
set obj-string to " Some text..." display obj-string
従属文字列は、(offset:stringLength) の構文でマネージ COBOL に構築されます。たとえば、次の行は、文字列 a の 6 番目の文字で始まる 2 文字を表示します。
display a(6:2)
これはかなり簡単な例で、a は pic x ではない文字列になります。C# または Java でこれを行うには、従属文字列メソッドを使用する必要がありますが、マネージ COBOL では、構文内になります。
連結は & (アンパサンド) を使用して簡単に行われます。
文字列の連結と文字列の参照変更を同じ行で行うことができます。それだけではなく、COBOL の引用符付き定数と文字列オブジェクトをシームレスに連結します。次に例を示します。
set a to a(1:5) & "-" & a(7:) display a
文字列と次の内容を & (アンパサンド) で連結できます。
文字列変数 | a & b |
従属文字列 | a & b(1:3) |
引用符付き文字列定数 | a & "-" |
非文字列タイプ | 23 & " is a number" |
呼び出しからの戻り値 | a & type COBOLString::Split(b,13,7) |
次の例では、従属文字列と連結を組み合わせます。ここでは、COBOL 引用符付き定数は、文字列に自動でキャストされ、呼び出しから戻される値は、2 つの COBOL 引用符付き定数と連結されます。
set a to "Micro Focus Managed COBOL is " & *>Micro Focus Managed COBOL is type COBOLString::Split("The cake is amazing", 13, 7) & *>amazing "ly good for working with strings!" *>ly good for working with strings! display a
COBOLString::Split() メソッドに次の内容が含まれる場合:
set stringOut to stringIn(offset:stringLength)
文字列の長さを取得するには、SIZE OF を使用します。次に例を示します。
set n to size of myString
次の例では、文字列変数 (COBOL 引用符付き定数、自動で文字列にキャストされる) と、呼び出しから戻される数字を連結します。この数字は、その後、別の COBOL 引用符付き定数と連結されます。
display a & " (this string is " & *> (this string is type COBOLString::CharCount(a) & *>69 " bytes long)" *> bytes long)
文字列を比較するには、= と <> を使用します。次に例を示します。
if a = b display "a = b" end-if if a <> b display "a <> b" end-if
文字列の比較は演算子 = および <> に対するオーバーロードとして実装されます。これらの演算子は、比較オブジェクト参照ではなく文字ごとに比較します。
文字列処理のサンプルも参照してください。このサンプルは [Start > All Programs > Micro Focus Visual COBOL > Samples] の [COBOL for .NET] の下にあります。