ArduinoのStringは、単なる変数の型ではなくクラスです。便利なメンバ関数の使い方をまとめました。
Stringの宣言
String str; //未定義の文字列 String str = ""; //初期化(空文字列) String str = "abc"; //"abc"で初期化 String strs[] = {"abc","def","ghi"}; //文字列配列 //↑str[0] = "abc", str[1] = "def", str[2] = "ghi"
文字列の連結
String同士の連結
String str1 = "abc"; String str2 = "def"; String str = str1 + str2;
Stringと文字リテラルの連結
String str = "abc"; str.concat("def"); //str = "abcdef"; //または str = str +"def"; //str = "abcdef"; //または str += "def"; //str = "abcdef";
文字列⇔数値の変換
Stringからint
String str = "123"; int val = 0; val = str.toInt(); //val = 123
Stringからfloat
String str = "0.01"; float val = 0.00f; val = str.toFloat(); //val = 0.01
intからString
int val = 123; String str = String(val); //str = "123"
floatからString
float val = 0.01f; String str = String(val); //str = "0.01";
文字列の切り出し
任意のインデックス以降の文字列を取得
String str = "abcdefg"; str = str.substring(4); //str = "efg";
任意のインデックス間の文字列を取得
String str = "abcdefg"; str = str.substring(3,5); //str = "def";
文字の置換
String str="aaabbbccc"; str.replace("b","d"); str="aaadddccc";
先頭・末尾のスペース削除
String str=" abc "; str.trim(); //str="abc"(文字列中のスペースは削除しない)
文字列の文字数を取得
String str = "abcde"; int len=str.length(); //len = 5
文字配列(char[])に変換
char chrs[10]; //変換後に格納するchar配列 String str="abcdef"; str.toCharArray(buf,len); //↑buf = {'a','b','c','d','e'}
文字の検索
String str="abcde"; int result; result = str.indexOf("cd"); //見つかった場合:result = 1 result = str.indexOf("fg"); //見つからなかった場合:result = -1