String関数については文字列制御を参照してください。
(scripts/08 - Strings.lua)
65 66 5 9 1 3 the 11 15 brown nil BC CDEF F Equal Press any key to exit
01:SCREEN_BOTTOM = 0 02:BGBotText = Screen.LoadTextBG() 03:Screen.Initialize( SCREEN_BOTTOM, BGBotText ) 04: 05:print( string.byte( "ABC" ) ) 06:print( string.byte( "ABC", 2 ) ) 07: 08:print( string.find( "the quick brown fox", "quick" ) ) 09:print( string.find( "the quick brown fox", "(%a+)" ) ) 10:print( string.find( "the quick brown fox", "(%a+)", 10 ) ) 11:print( string.find( "the quick brown fox", "fruit" ) ) 12: 13:print( string.sub( "ABCDEF", 2, 3 ) ) 14:print( string.sub( "ABCDEF", 3 ) ) 15:print( string.sub( "ABCDEF", -1 ) ) 16: 17:if ( string.sub( "BAD", 2, 2 ) == "A" ) then 18: print( "Equal" ) 19:else 20: print( "Not Equal" ) 21:end 22: 23:print( "Press any key to exit" ) 24:DSLua.WaitForAnyKey()
プログラムの解説
01:SCREEN_BOTTOM = 0 02:BGBotText = Screen.LoadTextBG() 03:Screen.Initialize( SCREEN_BOTTOM, BGBotText )
いつもの初期化処理
05:print( string.byte( "ABC" ) )
Aの文字コードを返します(65)
06:print( string.byte( "ABC", 2 ) )
"ABC"の2文字目の文字コードを返します(66)
08:print( string.find( "the quick brown fox", "quick" ) )
最初に"quick"という文字列が出現する位置を返します(5, 9)
09:print( string.find( "the quick brown fox", "(%a+)" ) )
最初の単語とその位置を返します(1, 3, the)
10:print( string.find( "the quick brown fox", "(%a+)", 10 ) )
10文字目以降の最初の単語とその位置を返します(11, 15, brown)
11:print( string.find( "the quick brown fox", "fruit" ) )
"fruit"で検索をかけますが存在しないのでnilを返します
13:print( string.sub( "ABCDEF", 2, 3 ) )
2文字目から3文字目まで返します(BC)
14:print( string.sub( "ABCDEF", 3 ) )
3文字目以降を返します(CDEF)
15:print( string.sub( "ABCDEF", -1 ) )
後ろから1文字返します
17:if ( string.sub( "BAD", 2, 2 ) == "A" ) then 18: print( "Equal" ) 19:else 20: print( "Not Equal" ) 21:end
"BAD"の2文字目から2文字目まで抜き出し、"A"と比較
等しいので"Equal"と表示します
23:print( "Press any key to exit" ) 24:DSLua.WaitForAnyKey()
ボタンを何か押したら終了