容错方面的我不太清楚,字符串的我倒是前段时间刚总结了下自己测试后的结果,原贴在:http://bbs.dp168.com/thread-108425-1-1.html
我把内容一起转过来吧:
- String a,b;
-
- byte c;
-
- int int_n;//int类型32768
-
- long long_n;//long范围2147483647
-
- void setup() {
-
- Serial.begin(57600);
-
- while (!Serial) ; //只有leonardo这样等待,其他不用
-
- Serial.println("Serial OK!");
-
- }
-
- void loop() {
- a="alkDdsjFl";
-
- int_n=a.toInt(); //转换为整数,如果字符串不是数字,则返回值为0,其他如toFloat( );
-
- b=a.charAt(3); //取第几个字符,由0开始算位置
-
- int_n=a.indexOf("kd"); //查找(可字符串数组),未查到为-1
-
- int_n=a.indexOf("kd",3); //从第n位置开始查找字符串(可字符串数组),未查到为-1
-
- int_n=a.lastIndexOf("kd");//和indexOf()一样,但是从字符串尾部开始???????????????
-
- int_n=a.length(); //读取长度。其中[String]是指String型的数组char变量
-
- b=a.substring(3); //从2到结尾
-
- b=a.substring(2,5); //从2到第3个字符(不是取3个)
-
- b=a; b.concat(" aslfj "); //把后面字符串添加到本字符串一起(连接)
-
- b+=" ffffff "; //同上也是连接字符串,字符串相加
-
- a = a + " sdfgsdfg "; //同上也是连接字符串,字符串相加
-
- c=a.startsWith("a6k9"); //开始字符串 返回TRUE(1),否则0
-
- c=a.endsWith("jf5l"); //结尾字符串 返回TRUE(1),否则0
-
- int_n=a.compareTo("aFldfghsdfgsegsergdfl");//和字符串比较,相同则返回0,否则为其他数字
-
- c=a.equals("alkd4sjfl"); //字符串完全相符1(TRUE)否则0
-
- c=a.equalsIgnoreCase("alKDdsJfl"); //字符串完全相符1(TRUE)否则0,但是不限制大小写
-
- c=a.endsWith("sj5fl"); //以字符串结尾1(TRUE)否则0
-
- a.replace("l","6"); //用字符串6替换l
-
- a.setCharAt(3,'9'); //把字符存储在给定的字符串的索引位置
-
- a.toUpperCase(); //转大写
-
- a.toLowerCase(); //转小写
-
- a.trim(); //去前后空格
-
-
- b=a.substring(2,5); //从2到第3个字符(不是取3个)
-
- /*byte a=0xff; c=bitRead(a,3); //此函数返回val数值右边第n位的二进制数字*/
-
- Serial.println("a=(" + a + ")");
-
- /* 以下内容未测试
-
- Serial.parseInt(); //可以直接从串口输入窗接收整数,省去字符处理和转换过程,未测试??????????
-
- a.getBytes(b,4); //拷贝提供的字符长度到字节缓冲中,未测试??????????
-
- toCharArray(buffer,len)—-从字符串0长度开始到给定的缓冲长度拷贝,未测试??????????
-
- */
-
- Serial.print("b=|");Serial.print(b);Serial.print("|");
-
- //Serial.print(int_n);
-
- //Serial.print(byte(c)); //以二进制形式将数字发送到串口-终于可以发送"0"了
-
- //Serial.print(c,16); //在串口输出16进制(字符串格式输出),16可写成HEX,也可用2来输出二进制的数字
-
- delay (9999999999);
-
- }
-
复制代码 |