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";
任意のインデックス間の文字列を取得
誤りがあったため修正しました。(20250517)
String str = "abcdefg"; str = str.substring(3,5); //str = "de";
文字の置換
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






