arduino教程:字符串函数
如果你需要操作文本。比如拷贝,增加文本,和定义文本数量。
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 | String text1="This string"; String text2="has more text"; String text3;
void setup() { Serial.begin(9600);
Serial.print(text1); Serial.print("is"); Serial.print(text1.length());//返回字符串长度 Serial.println("characters long.");
Serial.print("text2 is"); Serial.print(text2.length()); Serial.println("characters long.");
text1.concat(text2);//concat合并字符串 Serial.println("text1 now contains:"); Serial.println(text1); }
void loop() { } |
打开串口窗口,观察
This string is 11 characters long.
text2 is 14 characters long.
text1 now contains:
This string has more text
合并字符串也可以这样
text3=text1+"and more";
Serial.println(text3);
在串口窗口会输出
This is a string with more text and more
你可以使用indexOf和lastIndexOf函数来在字符串中找到一段特定的字符。
String是最新加入arduino的,如果你看到以下代码:
char oldString[]="this is a character array";
这个是C风格的
如果是这样的:
String newString="this is a string object";
这个是arduino Strings。
要把C风格转换成arduino风格,只需要把数组内容赋值给String就可以了:
char oldString[]="I want this character array in a String object";
String newString=oldString;
charAt(n)----返回字符串中第n个字符
compareTo(S2)----和给的S2字符串比较
concat(S2)----返回字符串和字符串S2合并后的新字符串
endsWith(S2)----如果字符串是以S2结尾的就返回TRUE
equals(S2)----如果字符串和S2完全相符,就返回TRUE
equalsIgnoreCase(S2)----和equal一样,但是不限制大小写
getBytes(buffer,len)----拷贝提供的字符长度到字节缓冲中
indexOf(S)----返回提供的字符串的索引,如果没有就返回-1
lastIndexOf(S)----和indexOf()一样,但是从字符串尾部开始
length()----返回字符串中的字符数
replace(A,B)----用字符串B替换A
setCharAt(index,c)----把c存储在给定的字符串的索引位置
startsWith(S2)----如果字符串以S2开始就返回TRUE
substring(index)----返回一个从给定索引到结尾的新的字符串
substring(index,to)----同上,但是到给定的to为结束的新的字符串
toCharArray(buffer,len)----从字符串0长度开始到给定的缓冲长度拷贝
toInt()----返回字符串中数字为整数值
toLowerCase()----把字符串全部转化为小写
toUpperCase()----把字符串全部转化为大写
trim()----返回一个去前后空格的字符串