다트에서 문자열(String) 처리 방법은?
_____A1: 다트에서는 작은 따옴표(' ') 또는 큰 따옴표(" ")를 사용해 문자열을 선언할 수 있습니다. 예:
```dart
String singleQuote = '안녕하세요';
String doubleQuote = "안녕하세요";
```
Q2: 여러 줄에 걸친 문자열을 작성하려면 어떻게 하나요?
A2: 세 개의 작은 따옴표(`''' `) 또는 큰 따옴표(`"""`)를 사용해 여러 줄 문자열을 작성할 수 있습니다. 예:
```dart
String multiLine = '''
이것은
여러 줄
문자열입니다.
''';
```
Q3: 문자열에서 변수나 표현식을 삽입하려면 어떻게 하나요?
A3: 문자열 내에 `$변수명` 또는 `${표현식}` 구문을 사용해 문자열 보간(String interpolation)을 할 수 있습니다. 예:
```dart
int age = 25;
String message = '나는 $age 살 입니다.';
String complex = '내년은 ${age + 1} 살 입니다.';
```
Q4: 문자열을 연결(concatenate)하는 방법은?
A4: `+` 연산자를 사용하거나, 여러 문자열 리터럴을 연속해서 배치하면 자동으로 연결됩니다. 예:
```dart
String s1 = '안녕';
String s2 = '하세요';
String result = s1 + s2; // '안녕하세요'
String result2 = '안녕' '하세요'; // '안녕하세요'
```
Q5: 문자열 길이를 알고 싶으면?
A5: `length` 프로퍼티를 사용합니다. 예:
```dart
String s = '안녕하세요';
int len = s.length; // 5
```
Q6: 특정 위치의 문자를 어떻게 얻나요?
A6: 문자열의 인덱스 연산자로 접근하거나 `codeUnitAt` 메서드를 사용합니다. 예:
```dart
String s = 'abc';
String char = s[1]; // 'b'
int codeUnit = s.codeUnitAt(1); // 98 (UTF-16 코드)
```
Q7: 문자열 내에서 특정 텍스트를 포함하는지 확인하려면?
A7: `contains()` 메서드를 사용합니다. 예:
```dart
String s = '안녕하세요';
bool hasHello = s.contains('녕'); // true
```
Q8: 문자열 비교는 어떻게 하나요?
A8: `==` 연산자를 사용해 값을 비교하며, 대소문자 구분까지 합니다.
```dart
String a = 'abc';
String b = 'ABC';
bool isEqual = (a == b); // false
```
Q9: 문자열을 소문자 또는 대문자로 바꾸려면?
A9: `toLowerCase()`, `toUpperCase()` 메서드를 사용합니다.
String s = 'DartLang';
print(s.toLowerCase()); // 'dartlang'
print(s.toUpperCase()); // 'DARTLANG'
```
Q10: 문자열을 분할하려면?
A10: `split()` 메서드를 사용합니다. 구분자(delimiter)를 넣으면 리스트로 반환합니다.
```dart
String fruits = '사과,바나나,포도';
List
```
Q11: 문자열 앞뒤 공백을 제거하려면?
A11: `trim()`, `trimLeft()`, `trimRight()` 메서드를 사용합니다.
```dart
String s = ' hello ';
print(s.trim()); // 'hello'
print(s.trimLeft()); // 'hello '
print(s.trimRight()); // ' hello'
```
Q12: 문자열을 부분 문자열로 추출하려면?
A12: `substring()` 메서드를 사용합니다.
```dart
String s = 'flutter';
String sub = s.substring(0, 3); // 'flu' (0 이상 3 미만)
```
Q13: 문자열 내 특정 문자의 인덱스를 찾으려면?
A13: `indexOf()` 또는 `lastIndexOf()` 메서드를 사용합니다.
```dart
String s = 'hello world';
int index = s.indexOf('o'); // 4
int lastIndex = s.lastIndexOf('o'); // 7
```
Q14: 문자열을 반복하려면?
A14: `*` 연산자를 사용할 수 없습니다. 대신 `List.filled()`와 `join()`을 사용하거나 직접 반복문을 작성해야 합니다. 예:
```dart
String repeated = List.filled(3, '안').join(); // '안안안'
```
Q15: 이스케이프 문자를 쓰려면?
A15: `\n` (줄바꿈), `\t` (탭), `\\` (역슬래시) 등 일반적인 이스케이프를 지원합니다. Raw 문자열은 접두어 `r`을 붙입니다.
```dart
String s = '줄바꿈 \n 탭 \t';
String raw = r'이스케이프 문자 \n 무시';
```
Q16: 문자열을 숫자로 변환하려면?
A16: `int.parse()`, `double.parse()` 메서드를 사용합니다.
```dart
String n = '123';
int number = int.parse(n);
```
Q17: 숫자를 문자열로 변환하려면?
A17: `toString()` 메서드를 사용합니다.
```dart
int n = 123;
String s = n.toString();
```
---
요약: 다트에서 문자열은 다양한 방법으로 선언, 조작, 변환할 수 있으며, 내장된 여러 메서드를 통해 쉽게 문자열 처리를 구현할 수 있습니다.
문자열은 다트에서 `String` 타입으로 표현되며, 이 타입은 불변(immutable)입니다.
즉, 문자열을 수정할 수는 없지만, 새로운 문자열을 생성할 수 있습니다.
아래에서는 다트에서 문자열을 처리하는 방법에 대해 자세히 설명하겠습니다.
1. 문자열 생성 다트에서 문자열은 작은따옴표(`'`) 또는 큰따옴표(`"`)로 생성할 수 있습니다.
또한, 삼중 따옴표(`'''` 또는 `"""`)를 사용하여 여러 줄의 문자열을 생성할 수 있습니다.
```dart void main() { String singleQuoteString = 'Hello, Dart!'; String doubleQuoteString = "Hello, Dart!"; String multiLineString = '''This is a multi-line string.'''; print(singleQuoteString); print(doubleQuoteString); print(multiLineString); } ```
2. 문자열 보간(String Interpolation) 다트에서는 문자열 보간을 통해 변수나 표현식을 문자열에 쉽게 삽입할 수 있습니다.
이를 위해 `$` 기호를 사용합니다.
```dart void main() { String name = 'Dart'; int year = 2023; String greeting = 'Welcome to $name $year!'; print(greeting); // Welcome to Dart 2023! } ``` 복잡한 표현식을 삽입하려면 중괄호 `{}`를 사용할 수 있습니다.
```dart void main() { String name = 'Dart'; String greeting = 'Welcome to ${name.toUpperCase()}!'; print(greeting); // Welcome to DART! } ```
3. 문자열 메서드 다트의 `String` 클래스는 다양한 메서드를 제공합니다.
주요 메서드는 다음과 같습니다: - 길이 : `length` 속성을 사용하여 문자열의 길이를 얻을 수 있습니다.
```dart String text = 'Hello'; print(text.length); // 5 ``` - 접합 : `+` 연산자를 사용하여 문자열을 결합할 수 있습니다.
```dart String first = 'Hello'; String second = 'World'; String combined = first + ' ' + second; print(combined); // Hello World ``` - 부분 문자열 : `substring` 메서드를 사용하여 문자열의 일부를 추출할 수 있습니다.
```dart String text = 'Hello, Dart!'; String sub = text.substring(7,
11); print(sub); // Dart ``` - 대소문자 변환 : `toUpperCase()` 및 `toLowerCase()` 메서드를 사용하여 문자열의 대소문자를 변환할 수 있습니다.
```dart String text = 'Hello'; print(text.toUpperCase()); // HELLO print(text.toLowerCase()); // hello ``` - 공백 제거 : `trim()` 메서드를 사용하여 문자열의 앞뒤 공백을 제거할 수 있습니다.
```dart String text = ' Hello, Dart! '; print(text.trim()); // Hello, Dart! ``` - 찾기 및 대체 : `contains()`, `indexOf()`, `replaceAll()` 등의 메서드를 사용하여 문자열 내에서 특정 문자열을 찾거나 대체할 수 있습니다.
```dart String text = 'Hello, Dart!'; print(text.contains('Dart')); // true print(text.indexOf('Dart')); // 7 print(text.replaceAll('Dart', 'Flutter')); // Hello, Flutter! ```
4. 문자열 분할 `split()` 메서드를 사용하여 문자열을 특정 구분자를 기준으로 분할할 수 있습니다.
```dart void main() { String text = 'apple,banana,cherry'; List
5. 문자열 비교 문자열을 비교할 때는 `==` 연산자를 사용하여 두 문자열이 같은지 확인할 수 있습니다.
```dart void main() { String str1 = 'Hello'; String str2 = 'Hello'; String str3 = 'World'; print(str1 == str
2); // true print(str1 == str
3); // false } ```
6. 정규 표현식 다트에서는 정규 표현식을 사용하여 문자열을 검색하거나 조작할 수 있습니다.
`RegExp` 클래스를 사용하여 정규 표현식을 생성하고, `hasMatch()`, `firstMatch()`, `allMatches()` 등의 메서드를 사용할 수 있습니다.
```dart void main() { String text = 'The quick brown fox jumps over the lazy dog'; RegExp regExp = RegExp(r'\b\w{4}\b'); // 4글자 단어 찾기 Iterable
다양한 메서드와 기능을 통해 문자열을 쉽게 생성, 조작 및 비교할 수 있습니다.
이러한 기능을 활용하여 다트 애플리케이션에서 문자열을 효과적으로 처리할 수 있습니다.
작성자:
이지용 [비회원]
| 작성일자: 1년 전
2024-09-19 01:52:39
조회수: 215 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 215 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.