StringCharacters

Dize işlevleri charAt() ve setCharAt() , bir setCharAt() belirli bir konumda bir karakterin değerini almak veya ayarlamak için kullanılır.

En basit haliyle, bu işlevler belirli bir karakteri aramanıza ve değiştirmenize yardımcı olur. Örneğin, belirli bir Dize'deki iki nokta üst üste işareti eşittir işaretiyle değiştirilir:

String reportString = "SensorReading: 456"; int colonPosition = reportString.indexOf(':'); reportString.setCharAt(colonPosition, '=');

İkinci kelimenin ilk harfinin 'B' olup olmadığını kontrol eden bir örnek:

String reportString = "Franklin, Benjamin"; int spacePosition = reportString.indexOf(' '); if (reportString.charAt(spacePosition + 1) == 'B') { Serial.println("You might have found the Benjamins.") }

Dikkat: almaya çalışırsanız charAt veya deneyin setCharAt() uzun String'in uzunluğundan daha var bir değere, beklenmeyen sonuçlar elde edersiniz. Emin değilseniz, ayarlamak veya almak istediğiniz konumun length() işlevini kullanarak dizenin uzunluğundan az olup olmadığını kontrol edin.

Gerekli Donanım

  • Arduino veya Genuino Kurulu

Devre

Bu örnek için devre yoktur, ancak kartınızın bilgisayarınıza USB ile bağlanması ve Arduino Yazılımının (IDE) seri monitör penceresinin açık olması gerekir.

Kod


/*
  String constructors

  Examples of how to create Strings from other data types

  created 27 Jul 2010
  modified 30 Aug 2011
  by Tom Igoe

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/StringConstructors
*/

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // send an intro:
  Serial.println("\n\nString Constructors:");
  Serial.println();
}

void loop() {
  // using a constant String:
  String stringOne = "Hello String";
  Serial.println(stringOne);      // prints "Hello String"

  // converting a constant char into a String:
  stringOne =  String('a');
  Serial.println(stringOne);       // prints "a"

  // converting a constant string into a String object:
  String stringTwo =  String("This is a string");
  Serial.println(stringTwo);      // prints "This is a string"

  // concatenating two strings:
  stringOne =  String(stringTwo + " with more");
  // prints "This is a string with more":
  Serial.println(stringOne);

  // using a constant integer:
  stringOne =  String(13);
  Serial.println(stringOne);      // prints "13"

  // using an int and a base:
  stringOne =  String(analogRead(A0), DEC);
  // prints "453" or whatever the value of analogRead(A0) is
  Serial.println(stringOne);

  // using an int and a base (hexadecimal):
  stringOne =  String(45, HEX);
  // prints "2d", which is the hexadecimal version of decimal 45:
  Serial.println(stringOne);

  // using an int and a base (binary)
  stringOne =  String(255, BIN);
  // prints "11111111" which is the binary value of 255
  Serial.println(stringOne);

  // using a long and a base:
  stringOne =  String(millis(), DEC);
  // prints "123456" or whatever the value of millis() is:
  Serial.println(stringOne);

  // using a float and the right decimal places:
  stringOne = String(5.698, 3);
  Serial.println(stringOne);

  // using a float and less decimal places to use rounding:
  stringOne = String(5.698, 2);
  Serial.println(stringOne);

  // do nothing while true:
  while (true);

}

See Also