1. 程式人生 > >arduino的String類

arduino的String類

String類主要的就是一些字串處理函式,比string具有更多更輕大的功能,so用起來很爽!

下面是其主要函式介紹,用例主要參考官方資料。

1、定義,這個就不多說了

String stringOne = "Hello String";                  
String stringOne =  String('a');                   
String stringTwo =  String("This is a string");   
String stringOne =  String(stringTwo + " with more");
String stringOne =  String(13);                    
String stringOne =  String(analogRead(0), DEC);    
String stringOne =  String(45, HEX);               
String stringOne =  String(255, BIN);               
String stringOne =  String(millis(), DEC); 
2、字串的連線與追加,官方將兩種功能分開了,其實覺得和在一起對比理解會更好一點
stringThree =  stringOne + 123;
stringThree = stringOne + 123456789;
stringThree =  stringOne + 'A';
stringThree =  stringOne +  "abc";
stringThree = stringOne + stringTwo;
stringOne += 123456789;
等同於
stringTwo.concat(123456789);
3、在字串中中查詢字元位置,返回值為給定字元的第一個位置,查詢失敗返回-1

   indexOf('?'):從字串頭部開始查詢

   lastindexOf('?'):從尾部開始查詢

int firstClosingBracket = stringOne.indexOf('>');
預設是從頭部開始查詢,還可以指定開始位置
int secondOpeningBracket = firstClosingBracket + 1;
int secondClosingBracket = stringOne.indexOf('>', secondOpeningBracket );
lastindexOf()的用法類似
int lastParagraph = stringOne.lastIndexOf("<p");
int secondLastGraf = stringOne.lastIndexOf("<p", lastParagraph - 1);
4、length():字串長度測量函式,返回值為字串的長度
String txtMsg = "This is a test!";
int lastStringLength = txtMsg.length();

5、trim():將字串中的字串去除,包括空格、回車、Tab等

String str = "this is	a 
test ,do you kown?";
stringOne.trim();
6、大小寫轉換

   大轉小:toLowerCase()

小轉大:toUpperCase()

7、替換:用後面的字串替換前面的字串

String stringOne = "<html><head><body>";
stringTwo.replace("<", "</");
8、檢視字串指定位置的字元:charAt(),返回值為給定位置的字元,如果超出範圍會發生意想不到的錯誤。

   改變字串給定位置的字元:setcharAt,無返回值。

String reportString = "SensorReading: 456";
char mostSignificantDigit = reportString.charAt(15);
reportString.setCharAt(13, '=');
9、判斷字串開頭、結尾或者給定位置是否為給定字串,是返回true,否則返回false
String stringOne = "HTTP/1.1 200 OK";
if (stringOne.startsWith("HTTP/1.1")) {
    Serial.println("Server's using http version 1.1"); 
} 
if (stringOne.startsWith("200 OK", 9)) {
    Serial.println("Got an OK from the server"); 
}
10、字串的各種比較,包括==,!=,>,<,>=,<=。具體的函式有equals()、equalsIgnoreCase()(忽略大小寫)、compareTo。字串的比較式從前往後進行比較,以ASIIC碼為標準。

11、字串轉換為整型:toInt(),返回值為轉換後的整型值。

12、字串解析函式:substring(?,...),返回值為指定位置的字串值

String stringOne = "Content-Type: text/html";
if (stringOne.substring(19) == "html") {
    Serial.println("It's an html file"); 
} 
if (stringOne.substring(14,18) == "text") {
    Serial.println("It's a text-based file"); 
}