Arduino 字符串的常用方法


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()----返回一個去前后空格的字符串

例子一:保存字符串特定有效位       

arduino如何串口接收以特定字符為開頭的字符串並且保存特定字符之后的有效位。如串口輸入a11,判斷字符串第一個字符為a,若為a則保存之后的數值11到comdata。

String inString = ""; // string to hold input
int comdata;


void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}


void loop() {
// put your main code here, to run repeatedly:
  while (Serial.available() > 0) {
      int inChar = Serial.read();
        if ((char)inChar == 'a') {
         do {
             inChar = Serial.read();
             inString += (char)inChar;
                  }
        while (isDigit(inChar));
              comdata=inString.toInt();
         Serial.println(comdata);
         inString = "";
                 }
          }
        inString = "";
     delay(200);
}

 

例子二:字符串處理 - 分離字符串

 這里用到了Arduino中帶的substring( )方法 與java中的類似

 

/*
將用逗號分隔的字符串分離出來
*/
String  message= "A,B,C"; //要分離的字符串
int commaPosition;//存儲還沒有分離出來的字符串  
void setup()
{
  Serial.begin(9600);//打開串口,設置波特率為9600
}

void loop()
{
  Serial.println(message);//串口打印要分離的字符串          
  do
  {
      commaPosition = message.indexOf(',');//檢測字符串中的逗號
      if(commaPosition != -1)//如果有逗號存在就向下執行
      {
          Serial.println( message.substring(0,commaPosition));//打印出第一個逗號位置的字符串
          message = message.substring(commaPosition+1, message.length());//打印字符串,從當前位置+1開始
      }
      else
      { //找到最后一個逗號,如果后面還有文字,就打印出來 
         if(message.length() > 0)
           Serial.println(message);  
      }
   }
   while(commaPosition >=0);
   delay(5000);
}

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM