Visual Basic の文字列をこよなく愛すれば、咳してもひとり

技術メルマガのネタ

青木「文○列と言えば、な~んだ?」
田中「先輩…伏字にしても、文字列としてか読めないんですけど」
青木「まあぁ、そうかもな。伏字にすると、アレだから、文♡列」っていうのはどうだ?」
田中「先輩…伏字というか、なんというか、文字列ですよね。やっぱり」
青木「そうかぁ、そうなると、文字列♡ っていうのは、どうだ?」
田中「…」
青木「ほら、あだち充が開発した、なんでもラブコメになってしまうという、技を君は知らないのか?」
田中「…」
青木「コホン…ああ、秋空。空が高いなぁ」
田中「盆には早いですが…」

だいたい、これだけ覚えておけば大丈夫よ、ってな感じです。
個人的には String.IsNllOrEmpty は使いたくないんですけどね。確かに String 型は Nothing/Null が入るので、null を代入したときに Length プロパティでチェックすると例外が発生してしまう訳ですが、データベースでの NULL を扱うならば、明示的に Nullable を使うほうが他との対応(nullable(of integer)とか)がよいかなぁと。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
Imports System.Data.SqlClient
 
Public Class Form1
 
    '''
    ''' 基本的なところをちょろっと
    '''
    ''' <param name="sender" />
    ''' <param name="e" />
    '''
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Dim s1 As String = "普通の初期化"
        ' NULL を入れることができる
        Dim s2 As String = Nothing
        ' Empty を入れることができる
        Dim s3 As String = String.Empty
#If False Then
        If s2.Length = 0 Then
            ' 例外発生
        End If
#End If
        If s3 = "" Then
            ' 実は空白と同じ
            MessageBox.Show("実は空白と同じ")
        End If
 
        If String.IsNullOrEmpty(s2) = True Then
            MessageBox.Show("IsNullOrEmpty を使う")
        End If
 
        ' 直接文字列に対してメソッドを使える
        Dim s4 As String = "tonny masuda".ToUpper
        MessageBox.Show(s4)
 
    End Sub
 
    '''
    ''' String は値型扱いになる
    '''
    ''' <param name="sender" />
    ''' <param name="e" />
    '''
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim src As String = "tonny"
        Dim dest As String = ""
        ' 文字列はコピーされる
        dest = src
        ' コピー元を変えても、コピー先は変わらない
        src = "TONNY"
        MessageBox.Show( _
            String.Format("src is {0}. dest is {1}", src, dest))
    End Sub
 
    '''
    ''' ToString を使ってフォーマットする
    '''
    ''' <param name="sender" />
    ''' <param name="e" />
    '''
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        ' 日付をフォーマット
        MessageBox.Show(Date.Now.ToString("yyyy年MM月dd日"))
        ' 数値をフォーマット
        Dim i As Integer = 1000
        MessageBox.Show(i.ToString("#,###円"))
        ' クラス名など
        Dim cn As New SqlConnection
        MessageBox.Show(cn.ToString)
        ' ToString を overrides する
        Dim hello As New Hello
        hello.age = 40
        hello.name = "tonny masuda"
        MessageBox.Show(hello.ToString)
    End Sub
 
    '''
    ''' 文字列の連結諸々
    '''
    ''' <param name="sender" />
    ''' <param name="e" />
    '''
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
 
        ' + 演算子で連結
        Dim s1 As String = "tonny" + " " + "masuda"
        ' & 演算子で連結
        Dim s2 As String = "tonny" & " " & "masuda"
        ' 数値から暗黙の変換
        Dim s3 As String = 1234
        ' 数値へ暗黙の変換
        Dim i4 As Integer = "1234"
    End Sub
 
    '''
    ''' よく使われる String のメソッド
    '''
    ''' <param name="sender" />
    ''' <param name="e" />
    '''
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Dim s1 As String = "tonny masuda"
 
        ' 文字列の長さ
        Dim i2 As Integer = s1.Length
        ' 先頭の文字
        Dim s3 As String = s1.Substring(0, 1)
        Dim s4 As String = s1(0)
        ' 最後の文字
        Dim s5 As String = s1.Substring(s1.Length - 1, 1)
        Dim s6 As String = s1(s1.Length - 1)
        ' 大文字/小文字
        Dim s7 As String = s1.ToUpper
        Dim s8 As String = s1.ToLower
        ' 前後の空白を削除
        Dim s9 As String = s1.Trim
        ' 置き換え
        Dim s10 As String = s1.Replace("masuda", "増田")
        ' 指定文字列を削除
        Dim s11 As String = s1.Replace("禁則事項ですッ!!!", "")
        ' 先頭の5文字だけ残す
        Dim s12 As String = s1.Substring(0, 5)
        Dim s13 As String = s1.Remove(5)
        ' 左寄せ/右寄せ
        Dim s14 As String = s1.PadRight(20)
        Dim s15 As String = s1.PadLeft(20, "○")
        MessageBox.Show(s15)
 
    End Sub
End Class
 
'''
''' ToString を overrides したクラス
'''
'''
Public Class Hello
    Public age As Integer
    Public name As String
 
    Public Overrides Function ToString() As String
        Return String.Format("オラ {0}. 年齢 {1} 歳だけど、よろしくなッ!!!", name, age)
    End Function
End Class
カテゴリー: VB, 技術メルマガ パーマリンク