Arduino-문자열 객체

Arduino 프로그래밍에 사용되는 두 번째 유형의 문자열은 String Object입니다.

개체는 무엇입니까?

객체는 데이터와 함수를 모두 포함하는 구성입니다. String 개체는 변수처럼 생성되고 값 또는 문자열을 할당 할 수 있습니다. String 개체에는 String 개체에 포함 된 문자열 데이터에 대해 작동하는 함수 (OOP (개체 지향 프로그래밍)에서 "메서드"라고 함)가 포함되어 있습니다.

다음 스케치와 설명을 통해 객체가 무엇인지, String 객체가 어떻게 사용되는지 명확하게 알 수 있습니다.

void setup() { 
   String my_str = "This is my string.";
   Serial.begin(9600);

   // (1) print the string
   Serial.println(my_str);

   // (2) change the string to upper-case
   my_str.toUpperCase();
   Serial.println(my_str);

   // (3) overwrite the string
   my_str = "My new string.";
   Serial.println(my_str);

   // (4) replace a word in the string
   my_str.replace("string", "Arduino sketch");
   Serial.println(my_str);

   // (5) get the length of the string
   Serial.print("String length is: ");
   Serial.println(my_str.length());
}

void loop() { 

}

결과

This is my string.
THIS IS MY STRING.
My new string.
My new Arduino sketch.
String length is: 22

문자열 객체가 생성되고 스케치 상단에 값 (또는 문자열)이 지정됩니다.

String my_str = "This is my string." ;

이것은 이름을 가진 String 객체를 생성합니다 my_str "This is my string."의 값을 제공합니다.

이것은 변수를 생성하고 정수와 같은 값을 할당하는 것과 비교할 수 있습니다.

int my_var = 102;

스케치는 다음과 같은 방식으로 작동합니다.

문자열 인쇄

문자열은 문자 배열 문자열처럼 직렬 모니터 창에 인쇄 할 수 있습니다.

문자열을 대문자로 변환

생성 된 문자열 객체 my_str에는 작동 할 수있는 여러 함수 또는 메서드가 있습니다. 이러한 메서드는 개체 이름, 점 연산자 (.), 사용할 함수 이름을 차례로 사용하여 호출됩니다.

my_str.toUpperCase();

그만큼 toUpperCase() 함수는에 포함 된 문자열에서 작동합니다. my_strString 유형이고 객체에 포함 된 문자열 데이터 (또는 텍스트)를 대문자로 변환하는 객체입니다. String 클래스에 포함 된 함수 목록은 Arduino String 참조에서 찾을 수 있습니다. 기술적으로 String은 클래스라고하며 String 개체를 만드는 데 사용됩니다.

문자열 덮어 쓰기

할당 연산자는 새 문자열을 할당하는 데 사용됩니다. my_str 이전 문자열을 대체하는 객체

my_str = "My new string." ;

할당 연산자는 문자 배열 문자열에서 사용할 수 없지만 String 개체에서만 작동합니다.

문자열에서 단어 바꾸기

replace () 함수는 전달 된 첫 번째 문자열을 전달 된 두 번째 문자열로 대체하는 데 사용됩니다. replace ()는 String 클래스에 내장 된 또 다른 함수이므로 String 객체 my_str에서 사용할 수 있습니다.

문자열의 길이 얻기

string의 길이는 length ()를 사용하여 쉽게 얻을 수 있습니다. 예제 스케치에서 length ()에 의해 반환 된 결과는 중간 변수를 사용하지 않고 Serial.println ()에 직접 전달됩니다.

문자열 개체를 사용하는 경우

String 객체는 string 형 문자 배열보다 사용하기가 훨씬 쉽습니다. 객체에는 문자열에 대해 여러 작업을 수행 할 수있는 내장 함수가 있습니다.

String 객체 사용의 주요 단점은 많은 메모리를 사용하고 Arduinos RAM 메모리를 빠르게 사용할 수 있다는 것입니다. 이로 인해 Arduino가 중단되거나 충돌하거나 예기치 않게 동작 할 수 있습니다. Arduino의 스케치가 작고 객체 사용을 제한한다면 문제가 없을 것입니다.

문자 배열 문자열은 사용하기가 더 어려우며 이러한 유형의 문자열에서 작동하려면 자체 함수를 작성해야 할 수 있습니다. 장점은 만드는 string 형 배열의 크기를 제어 할 수 있으므로 배열을 작게 유지하여 메모리를 절약 할 수 있다는 것입니다.

문자열 배열을 사용하여 배열 경계의 끝을 초과하여 쓰지 않도록해야합니다. String 객체에는이 문제가 없으며 작동하기에 충분한 메모리가있는 경우 문자열 경계를 처리합니다. String 개체는 메모리가 부족할 때 존재하지 않는 메모리에 쓰기를 시도 할 수 있지만 작동중인 문자열의 끝 부분에는 쓰지 않습니다.

문자열이 사용되는 곳

이 장에서 우리는 문자열, 그들이 메모리에서 어떻게 동작하는지 그리고 그 동작에 대해 공부했습니다.

문자열의 실제 사용은 직렬 모니터 창에서 사용자 입력을 가져오고 입력을 문자열에 저장하는 방법을 연구 할 때이 과정의 다음 부분에서 다룰 것입니다.