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