文字列

このヘルプでは、COBOL、C#、VB.NET の間にある文字列の処理方法の相違点について説明します。

COBOL の文字列

Escape sequences
x"0a"  *> line-feed
x"09"  *> tab
"\"    *> backslash
""     *> quote




*> string concatenation
01 school string value "Harding" & x"09".
    set school to string::Concat(school, "University")
    *> school is "Harding (tab) University"

*> Chars
01 letter character.
01 word character occurs any.
    set letter to school::Chars(0)         *> letter is H
    set letter to type Convert::ToChar(65) *> letter is A
    set letter to 65 as character          *> same thing
    set word to school::ToCharArray        *>word holds Harding

*> String literal
01 msg string value "File is c:\temp\x.dat".


*>String comparison
01 mascot string value "Bisons".
    if mascot = "Bisons"    *> true
    if mascot::Equals("Bisons")  *> true
    if mascot::ToUpper::"Equals"("BISONS")  *> true
    if mascot::CompareTo("Bisons") = 0  *> true

*> String matching - no Like equivalent , use Regex


*> Substring
    set s to mascot::Substring(2 3) *> s is "son"

*> Replacement
    set s to mascot::Replace("sons" "nomial")  *> s is "Binomial"

*> Split
01 names string value "Frank,Becky,Ethan,Braden".
01 parts string occurs any.
    set parts to names::Split(",")

*> Date to string
01 dt type DateTime value new DateTime(1973, 10, 12).
01 s string.
    set s to dt::ToString("MMM dd, yyyy")  *> Oct 12, 1973

*> int to string
01 x string.
01 y binary-long value 2.
    set x to type x::ToString   *> x is "2"

*> string to int
01 x binary-long.
    set x to type Convert::ToInt32("-5")   *> x is -5

*> Mutable string
01 buffer type System.Text.StringBuilder
        value new System.Text.StringBuilder("two ").
    invoke buffer::Append("three ")
    invoke buffer::Insert(0, "one ")
    invoke buffer::Replace("two" "TWO"
    display buffer   *> Prints "one TWO three"

C# の文字列

Escape sequences
\r    // carriage-return
\n    // line-feed
\t    // tab
\\    // backslash
\"    // quote



// String concatenation
string school = "Harding\t";
school = school + "University"; // school is "Harding (tab) University"

// Chars
char letter = school[0];              // letter is H
letter = Convert.ToChar(65);          // letter is A
letter = (char)65;                    // same thing
char[] word = school.ToCharArray();   // word holds Harding



// String literal
string msg = @"File is c:\temp\x.dat";
// same as
string msg = "File is c:\\temp\\x.dat";

// String comparison
string mascot = "Bisons";
if (mascot == "Bisons")                 // true
if (mascot.Equals("Bisons"))            // true
if (mascot.ToUpper().Equals("BISONS"))  // true
if (mascot.CompareTo("Bisons") == 0)    // true

// String matching - No Like equivalent, use Regex


// Substring
s = mascot.Substring(2, 3))     // s is "son"

// Replacement
s = mascot.Replace("sons", "nomial")) // s is "Binomial"

// Split
string names = "Frank,Becky,Ethan,Braden";
// One name in each slot
string[] parts = names.Split(",".ToCharArray());

// Date to string
DateTime dt = new DateTime(1973, 10, 12);
string s = dt.ToString("MMM dd, yyyy");     // Oct 12, 1973


// int to string
int x = 2;
string y = x.ToString();     // y is "2"


// string to int
int x = Convert.ToInt32("-5");     // x is -5


// Mutable string
System.Text.StringBuilder buffer =
    new System.Text.StringBuilder("two ");
buffer.Append("three ");
buffer.Insert(0, "one ");
buffer.Replace("two", "TWO");
Console.WriteLine(buffer);     // Prints "one TWO three"

VB.NET の文字列

Special character constants (all also accessible from ControlChars class)
vbCrLf, vbCr, vbLf, vbNewLine
vbNullString
vbTab
vbBack
vbFormFeed
vbVerticalTab
""

' String concatenation (use & or +)
Dim school As String = "Harding" & vbTab
school = school & "University" ' school is "Harding (tab) University"

' Chars
Dim letter As Char = school.Chars(0)      ' letter is H
letter = Convert.ToChar(65)               ' letter is A
letter = Chr(65)                          ' same thing
Dim word() As Char = school.ToCharArray() ' word holds Harding



' No string literal operator
Dim msg As String = "File is c:\temp\x.dat"



' String comparison
Dim mascot As String = "Bisons"
If (mascot = "Bisons") Then                  ' true
If (mascot.Equals("Bisons")) Then            ' true
If (mascot.ToUpper().Equals("BISONS")) Then  ' true
If (mascot.CompareTo("Bisons") = 0) Then     ' true

' String matching with Like - Regex is more powerful
If ("John 3:16" Like "Jo[Hh]? #:*") Then   'true

' Substring
s = mascot.Substring(2, 3)) ' s is "son"

' Replacement
s = mascot.Replace("sons", "nomial")) ' s is "Binomial"

' Split
Dim names As String = "Frank,Becky,Ethan,Braden"
Dim parts() As String = names.Split(",".ToCharArray())   ' One name in each slot


' Date to string
Dim dt As New DateTime(1973, 10, 12)
Dim s As String = "My birthday: " & dt.ToString("MMM dd, yyyy")   ' Oct 12, 1973


' Integer to String
Dim x As Integer = 2
Dim y As String = x.ToString()     ' y is "2"


' String to Integer
Dim x As Integer = Convert.ToInt32("-5")     ' x is -5


' Mutable string
Dim buffer As New System.Text.StringBuilder("two ")
buffer.Append("three ")
buffer.Insert(0, "one ")
buffer.Replace("two", "TWO")
Console.WriteLine(buffer)         ' Prints "one TWO three"

これらの例の一部は、ハーディング大学コンピューター サイエンス学部の Frank McCown 博士が作成したもので、クリエイティブ コモンズ ライセンスに基づいて使用が許可されています。