Rust 언어는 두 가지 유형의 문자열을 제공합니다.
문자열 리터럴 &str은 컴파일 시간에 값이 알려진 문자열 유형이며 Rust 언어의 핵심 부분입니다. 문자열 리터럴 &str은 하드 코딩되어 변수에 할당된 문자 모음입니다.
문자열 리터럴의 핵심 코드는 std::str 모듈에서 찾을 수 있습니다 . 관심이 있다면 읽어보세요.
Rust의 문자열 리터럴은 문자열 슬라이스 라고 합니다 . 기본 구현이 슬라이싱 이기 때문입니다 .
다음 코드에서는 두 개의 문자열 리터럴 회사와 위치를 정의합니다.
문자열 리터럴 패턴은 정적 입니다 . 즉, 문자열 리터럴은 생성된 시점부터 프로그램이 끝날 때까지 저장됩니다.
기본값은 static 이므로 static 키워드를 적극적으로 추가할 수도 있습니다. 단지 구문 형식이 조금 이상할 뿐이므로 일상적으로 사용하는 경우에는 무시하면 됩니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
String 객체는 Rust 표준 라이브러리에서 제공하는 내장 유형입니다.
문자열 리터럴과 다릅니다. 문자열 객체는 Rust 코어에 내장된 데이터 유형이 아니며 단지 표준 라이브러리의 공개 pub 구조입니다.
표준 라이브러리의 문자열 객체 정의 구문은 다음과 같습니다.
문자열 개체는 가변 적이고 기본 데이터 인코딩 형식으로 UTF-8을 사용하는 가변 길이 컬렉션입니다 .
문자열 개체는 힙 에 할당되며 런타임 시 문자열 값과 해당 작업 메서드를 제공할 수 있습니다.
문자열 개체를 만드는 방법에는 두 가지가 있습니다.
다음으로 String::new() 메서드와 String::from() 메서드를 사용하여 문자열 개체를 만들고 문자열 개체의 길이를 출력합니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
위의 예에서는 두 개의 문자열, 즉 new 메서드를 사용하는 빈 문자열 개체와 from 메서드를 사용하는 문자열 리터럴의 문자열 개체를 만듭니다.
방법원기설명하다
명령어 | 방법 | 설명 |
new() | pub const fn new() -> String | 새 문자열 개체 만들기 |
to_string() | fn to_string(&self) -> String | 문자열 리터럴을 문자열 객체로 변환 |
replace() pub fn replace<’a, P>(&’a self, from: P, to: &str) -> String | 지정된 패턴을 검색하고 바꾸기 | |
as_str() | pub fn as_str(&self) -> &str | 문자열 객체를 문자열 리터럴로 변환 |
push() | pub fn push(&mut self, ch: char) | 문자열 끝에 문자 추가 |
push_str() | pub fn push_str(&mut self, string: &str) | 문자열 끝에 문자열 추가 |
len() | pub fn len(&self) -> usize | 문자열의 길이를 바이트 단위로 반환합니다. |
trim() | pub fn 트림(&self) -> &str | 문자열의 시작과 끝에서 공백 문자를 제거합니다. |
split_whitespace() | pub fn Split_whitespace(&self) -> SplitWhitespace | 공백을 기준으로 문자열을 분할하고 분할 반복자를 반환합니다. |
split() | pub fn split<’a, P>(&’a self, pat: P) -> Split<’a, P> | 지정된 패턴에 따라 문자열을 분할하고 분할 반복자를 반환합니다. 패턴 P는 문자열 리터럴, 문자 또는 구분 기호를 반환하는 클로저일 수 있습니다. |
chars() | pub fn chars(&self) -> Char | 문자열의 모든 문자로 구성된 반복자를 반환합니다. |
새로운 빈 문자열 객체를 생성하려면 new() 메서드를 호출하면 됩니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
문자열 리터럴에는 작업 방법이 없으며 문자열 자체만 저장합니다.
실제로는 to_string() 이 있습니다.
문자열에 대해 일부 작업을 수행하려면 문자열을 문자열 개체로 변환해야 합니다. 이 변환 프로세스는 to_string() 메서드를 호출하여 수행할 수 있습니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
문자열 객체의 지정된 문자열 하위 문자열을 다른 문자열로 바꾸려면 replacement() 메서드를 호출하면 됩니다.
replacement() 메소드는 두 개의 매개변수를 허용합니다:
다음 코드에서는 문자열의 모든 문자"회사"을 검색하고 이를 www.mobirise.co.kr으로 바꿉니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
페이온시스템
mobirise.co.kr
문자열 리터럴은 다음과 같은 문자열의 문자입니다.
name1은 Zero Basic Tutorial 자체라는 네 단어만 포함하는 문자열 리터럴입니다.
문자열 리터럴은 문자열 자체만 포함하며 해당 작업 방법을 제공하지 않습니다.
문자열 객체의 문자열 리터럴을 반환하려면 as_str() 메서드를 호출하면 됩니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
표시된 문자열 리터럴은 다음과 같습니다: 러스트 프로그래밍
문자열에 문자를 추가하려면 먼저 문자열을 mutable 로 선언해야 합니다 . 즉, mut 키워드를 사용해야 합니다. 그런 다음 push() 메서드를 호출합니다 .
push()는 새 문자열을 반환하는 대신 원래 문자에 추가합니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
문자열에 문자열을 추가하려면 먼저 문자열을 mutable 로 선언해야 합니다 . 즉, mut 키워드를 사용해야 합니다. 그런 다음 push_str() 메서드를 호출합니다 .
push_str()은 새 문자열을 반환하는 대신 원래 문자에 추가합니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
주식회사 페이온
문자열의 총 바이트 수를 반환하려면 len() 메서드를 사용할 수 있습니다.
len() 메서드는 공백을 포함한 모든 문자를 계산합니다.
공백 문자는 탭 문자\t, 공백, 캐리지 리턴\r, 줄 바꿈\n, 캐리지 리턴 및 줄 바꿈\r\n 등을 나타냅니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
length is 42
공백 문자는 탭 문자\t, 공백, 캐리지 리턴\r, 줄 바꿈\n, 캐리지 리턴 및 줄 바꿈\r\n 등을 나타냅니다.
문자열의 시작과 끝 부분에 있는 공백 문자를 제거하려면 Trim() 메서드를 사용하면 됩니다.
이 메서드는 선행 및 후행 공백 문자를 제거하지 않으며 새 문자열을 반환합니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
Before trim
length is 58
After trim
length is 53
string is :주식회사
페이온
러스트 프로그래밍
공백 문자는 탭 문자\t, 공백, 캐리지 리턴\r, 줄 바꿈\n, 캐리지 리턴 및 줄 바꿈\r\n 등을 나타냅니다.
공백 문자를 기반으로 문자열을 분할하는 것은 가장 일반적으로 사용되는 작업 중 하나입니다. 이러한 이유로 Rust 언어는 문자열이 공백 문자를 기반으로 문자열을 분할하고 반복자를 반환하도록 Split_whitespace()를 제공합니다.
이 반복자를 사용하여 분할 문자열에 액세스할 수 있습니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
token 1 러스트
token 2 프로그래밍
token 3 www.mobirise.co.kr
token 4 https://mobirise.co.kr
지정된 일부 문자열 하위 문자열을 기반으로 문자열을 분할하려면 분할() 메서드를 사용할 수 있습니다.
Split()은 전달된 지정된 패턴(문자열 구분 기호)에 따라 문자열을 분할하고 분할된 문자열 하위 문자열로 구성된 조각에 대한 반복자를 반환합니다. 이 반복자를 통해 분할된 문자열 하위 문자열을 반복할 수 있습니다.
Split() 메서드의 가장 큰 단점은 재진입이 불가능하다는 것입니다. 즉, 반복자가 사용되면 다시 사용하기 전에 다시 호출해야 합니다.
하지만 먼저 반복자에서 Collect() 메서드를 호출하여 반복자를 벡터로 변환하여 재사용할 수 있습니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
token is 영희
token is 한라산
token is 한국
성명 is 영희
제일높은 한라산
여기는 한국
문자열을 모든 문자의 배열로 분리하려면 chars() 메서드를 사용할 수 있습니다.
어떤 면에서 문자열의 각 문자를 반복하려면 먼저 문자열을 반복하기 전에 문자 배열로 나누어야 합니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
주
식
회
사
페
이
온
w
w
w
.
m
o
b
i
r
i
s
e
.
c
o
.
k
r
새로운 문자열을 생성하기 위해 한 문자열을 다른 문자열의 끝에 추가하는 것을 연결 이라고 하며 때로는 연결 또는 델타 라고도 합니다 .
연결 의 결과로 새 문자열 개체가 생성됩니다.
Rust 언어는 이 연결을 완료하기 위해 더하기 기호 +를 사용하며, 이를 문자열 연결 연산자 라고 부릅니다 .
문자열 연결기 + 의 내부 구현은 실제로 add() 메서드를 다시 작성합니다. 이 메서드는 두 개의 매개변수를 받습니다. 첫 번째 매개변수는 + 왼쪽에 있는 문자열인 현재 문자열 개체입니다. 두 번째 매개변수는 + 오른쪽에 있는 문자열을 가리키는 참조입니다.
구체적인 메소드 프로토타입은 다음과 같습니다
다음 코드에서는 문자열 연결 연산자 +를 사용하여 두 문자열 변수를 새 문자열로 연결합니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
주식회사 페이온러스트 프로그래밍
다른 유형을 문자열 유형으로 변환해야 하는 경우 to_string() 메서드를 직접 호출할 수 있습니다.
예를 들어, 숫자 유형 변수의 to_string() 메서드를 호출하여 현재 변수를 문자열 유형으로 변환할 수 있습니다.
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
다양한 변수나 객체를 문자열로 연결하려면 형식 매크로( format! )를 사용할 수 있습니다.
형식 매크로 형식은 다음과 같이 사용됩니다:
위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.
처음부터 배우는 러스트 프로그래밍
9. Rust 조건부 판단 (0) | 2024.11.15 |
---|---|
8. Rust 연산자 (0) | 2024.11.15 |
6. Rust 상수 (0) | 2024.11.13 |
5. Rust 변수 정의 (0) | 2024.11.13 |
4. Rust 데이터 유형 (0) | 2024.11.13 |