Flutter (앱 개발)/Dart 코드 첨부 파일

[Dart 변수와 데이터 타입] Dart에서 문자열(String) 다루기 및 주요 메서드(명령 프롬프트 첨부 파일 제공)

Ize𓆜 2025. 2. 23. 19:55
728x90
728x90

 

 

 

Dart에서 문자열(String) 다루기 및 주요 메서드 📝🔍

 

프로그래밍을 할 때

문자열은

매우 중요한 데이터 타입입니다.

 




Dart에서도 문자열(String)은

텍스트 데이터를 저장하고

조작하는 데 사용되며,


특히 Flutter 개발에서는

UI 요소, 사용자 입력,

API 응답 데이터 처리 등에

필수적으로 활용됩니다.

 

예를 들어,

다음과 같은 상황에서 문자열을 다룹니다.

 

  • 사용자의 이름을 저장하고 출력
  • 이메일 주소를 입력받아 검증
  • 텍스트를 조합하여 UI 요소에 출력
  • 데이터를 검색하고 필터링

 

이번 포스팅에서는

Dart에서 문자열을 다루는 방법과

주요 메서드를 예제와 함께

정리하겠습니다. 🚀

 


 

먼저

더 많은 정보, 혹은


순서대로 포스팅을 보고 싶다면


아래 노션을 확인해주세요. 

 



https://mongmung-i.notion.site/Flutter-1a39b1e2cdaa80319a0fc2a89281dc71?pvs=4

 

Flutter 어플 개발 일지 | Notion

Made with Notion, the all-in-one connected workspace with publishing capabilities.

mongmung-i.notion.site

https://mongmung-i.notion.site/19f9b1e2cdaa80a984ade6141a87fd29?pvs=4

 

창업 트랙 사전 캠프 𓆲 | Notion

이 곳은 창업 트랙 사전 캠프 진행 사항을 정리하는 곳입니다.

mongmung-i.notion.site

 

 


Ⅰ. 서론: Dart에서 문자열(String)을 다루는 이유 🤔

 

문자열이 중요한 이유

 



사용자 입력, API 데이터, UI 요소 등의 기본 데이터 타입
검색, 필터링, 포맷팅 등 다양한 조작이 필요함
Flutter UI에서 다국어 지원(국제화, I18N) 시 필수적

문자열을 효율적으로 다룰 수 있어야 앱 개발이 쉬워집니다! 🚀


문자열을 선언하는 다양한 방법

 

Dart에서 

문자열을 선언하는 방법은

 여러 가지가 있으며, 

다음과 같은 방식이 가능합니다.

 

작은 따옴표('), 큰 따옴표(") 모두 사용 가능
여러 줄 문자열은 ''' 또는 """ 사용
이스케이프 문자 지원 (\n, \t 등)

void main() {
  String singleQuote = 'Hello, Dart!'; // 작은 따옴표 사용
  String doubleQuote = "Flutter is awesome!"; // 큰 따옴표 사용
  String multiLine = '''이것은
여러 줄 문자열입니다.'''; // 여러 줄 문자열

  print(singleQuote);
  print(doubleQuote);
  print(multiLine);
}

🚀 여러 줄 문자열을 사용할 때는 큰 따옴표 세 개(""") 또는 작은 따옴표 세 개(''')를 사용하면 됩니다!


Ⅱ. 본론: 문자열 선언 및 주요 메서드 활용하기 🏗️

 

Step 1: 문자열 선언 및 다양한 표기법

 

이스케이프 문자 활용 (\n, \t, \', \")

 

 

이스케이프 문자를 사용하면 

줄바꿈, 따옴표 포함, 탭 간격을 

표현할 수 있습니다.

 

void main() {
  String text = 'Dart는 \"간단하고 강력한\" 언어입니다.\n새로운 줄에서 시작됩니다.';
  print(text);
}

🚀 이스케이프 문자를 활용하면 문자열을 더 유연하게 조작할 수 있습니다!

 


Step 2: 문자열 결합 및 보간법 (Interpolation)

 

 

+ 연산자로 문자열 결합

 

 

+ 연산자를 사용하면

 두 개 이상의 문자열을 

연결할 수 있습니다.


하지만 이 방식은

 가독성이 떨어지고,

 많은 문자열을 조합할 때

 비효율적일 수 있습니다.

 

void main() {
  String first = 'Hello';
  String second = 'Dart';
  
  print(first + ' ' + second);  // Hello Dart
}

 

문자열 보간법 ($변수, ${식} 사용 가능)

 

Dart에서는

문자열을 조합할 때

$변수 또는 ${식}을 사용할 수 있습니다.


이 방식은 가독성이 뛰어나고,

성능 면에서도 더 효율적입니다.

void main() {
  String language = 'Dart';
  int year = 2024;
  
  print('프로그래밍 언어: $language, 출시 연도: $year');
}


 

📌 + 연산자 vs 보간법 비교

void main() {
  String language = 'Dart';
  int year = 2024;

  // + 연산자 사용 (비효율적)
  print('프로그래밍 언어: ' + language + ', 출시 연도: ' + year.toString());

  // 문자열 보간법 사용 (더 효율적)
  print('프로그래밍 언어: $language, 출시 연도: $year');
}

🚀 문자열을 조합할 때 + 연산자보다 보간법을 사용하는 것이 더 직관적이고 성능도 좋습니다.

 


Step 3: 문자열 길이 확인 및 특정 문자 접근 보완 설명

 

문자열 길이 확인 (length)

 

문자열의 길이를 알고 싶을 때는

 .length 속성을 사용합니다.


이 기능은 

입력된 데이터의 길이를 제한하거나, 

문자열을 검증할 때 유용합니다.

void main() {
  String text = 'Dart Programming';
  print('문자열 길이: ${text.length}'); // 16
}

 

 

특정 문자 접근 (인덱스 사용)

 

Dart에서는 

배열과 마찬가지로 

문자열도 인덱스를 사용하여 

특정 문자에 접근할 수 있습니다.


문자열의 첫 번째 문자는 text[0], 

마지막 문자는 text[text.length - 1]로 

가져올 수 있습니다.

 

void main() {
  String text = 'Flutter';
  print('첫 번째 문자: ${text[0]}'); // F
  print('마지막 문자: ${text[text.length - 1]}'); // r
}

 

🚀 문자열에서 특정 문자를 가져올 때는 인덱스를 사용하면 간단하게 접근할 수 있습니다.


Step 4: 문자열 비교 및 포함 여부 체크 보완 설명

 

문자열 비교 (==)

 

Dart에서는

 == 연산자를 사용하여 

두 개의 문자열이 같은지

 비교할 수 있습니다.


이는 사용자 입력 검증, 

비밀번호 확인, 검색 필터링 등에 

자주 활용됩니다.

.

void main() {
  String password = 'secure123';
  String userInput = 'secure123';

  if (password == userInput) {
    print('비밀번호가 일치합니다.');
  } else {
    print('비밀번호가 다릅니다.');
  }
}

문자열 비교.txt
0.00MB

 

 

문자열 포함 여부 확인 (contains)

 

 

특정 문자열이

포함되어 있는지 확인할 때

contains() 메서드를 사용합니다.


이 기능은 검색 기능을 구현하거나

특정 키워드가 포함된 데이터만

필터링할 때 유용합니다.

 

void main() {
  String text = 'Flutter is awesome';

  print(text.contains('Flutter')); // true
  print(text.contains('Dart')); // false
}

특정 문자 필터링.txt
0.00MB

 

🚀 contains()를 사용하면 문자열에서 특정 단어가 포함되어 있는지 쉽게 확인할 수 있습니다!

 


Step 5: 문자열 변환 (대소문자 변경, 공백 제거, 형 변환) 보완 설명

 

대소문자 변환 (toUpperCase(), toLowerCase())

 

 

이 기능은 

사용자의 입력을 비교할 때

 대소문자를 무시하고 처리하거나, 

모든 텍스트를

 동일한 포맷으로 변환할 때 유용합니다.

 

void main() {
  String text = 'Hello Dart';

  print('대문자로 변환: ${text.toUpperCase()}'); // HELLO DART
  print('소문자로 변환: ${text.toLowerCase()}'); // hello dart
}

대소문자 변환.txt
0.00MB

 

공백 제거 (trim())

 

 

사용자의 입력을 받거나

데이터를 처리할 때

앞뒤 공백을 제거하는 것이

중요합니다.


예를 들어,

로그인 입력 필드에서

사용자가 실수로 공백을 입력하면

오류가 발생할 수 있기 때문에

이를 방지하는 데 유용합니다

 

void main() {
  String text = '  Dart  ';

  print('원본 문자열: "$text"');
  print('trim() 적용 후: "${text.trim()}"');
}

공백제거.txt
0.00MB

 

 

숫자를 문자열로 변환 (toString())

 


숫자를 문자열로 변환할 때는

.toString()을 사용합니다.


이 기능은

UI에 숫자를 표시할 때 필수적이며,

데이터 직렬화에도 사용됩니다.

void main() {
  int number = 42;
  String strNumber = number.toString();

  print('숫자를 문자열로 변환: $strNumber'); // '42'
}

🚀 데이터를 일관된 형식으로 저장하고, UI에서 올바르게 표시하려면 .toString()을 적극 활용하세요!

 


Step 6: 문자열 분할 및 리스트 변환 (split, join) 보완 설명

 

문자열을 리스트로 변환 (split())

 

문자열을 특정 구분자로 나누어 

리스트(List)로 변환할 수 있습니다.


이 기능은 

CSV 데이터 처리, 문장 단위 분석, 

단어 추출 등의 작업에서 유용합니다.

void main() {
  String text = 'Dart,Flutter,Firebase';
  
  List<String> words = text.split(',');  // ',' 기준으로 분할
  print(words); // ['Dart', 'Flutter', 'Firebase']
  
  // 첫 번째 단어 출력
  print('첫 번째 단어: ${words[0]}'); // Dart
}

🚀 split()을 사용하면 문자열을 리스트로 변환하여 개별 단어를 쉽게 다룰 수 있습니다.

 

 

리스트를 문자열로 변환 (join())

 

 

리스트에 저장된 여러 개의 문자열을

특정 구분자로 하나의 문자열로

결합할 수 있습니다.


이 기능은

파일 경로 생성, 태그 목록 표시,

데이터 조합 등에 활용됩니다.

 

void main() {
  List<String> words = ['Dart', 'Flutter', 'Firebase'];
  
  String sentence = words.join(' & ');  // 각 요소를 ' & '로 연결
  print(sentence); // 'Dart & Flutter & Firebase'
}

🚀 join()을 활용하면 리스트 데이터를 보기 좋은 문자열로 변환할 수 있습니다!

 


Ⅲ. 문자열을 효과적으로 활용하는 방법

 

Flutter UI에서 문자열을 다룰 때 고려할 점

 

Flutter에서는 텍스트 데이터를 다룰 때

 다국어 지원과 성능 최적화를 고려해야 합니다.

 

하드코딩된 문자열을 피하고, 다국어 지원(I18N) 기능을 활용할 것
사용자의 입력을 받을 경우 trim()을 활용해 불필요한 공백을 제거
contains(), split(), toLowerCase() 등을 활용해 검색 기능 최적화
UI에서 긴 문자열을 다룰 때 Text 위젯의 overflow 속성을 활용할 것


성능을 고려한 문자열 처리 방법

 

StringBuffer 사용하여 긴 문자열 결합 시 성능 최적화

 

Dart에서 문자열은 

불변(Immutable) 특성을 가지므로,

 + 연산을 남발하면 

메모리 사용량이 증가할 수 있습니다.

 


따라서 

반복적으로 문자열을 추가해야 할 경우,

 StringBuffer를 사용하는 것이 

성능 면에서 더 좋습니다.

void main() {
  StringBuffer buffer = StringBuffer();

  buffer.write('Dart ');
  buffer.write('is ');
  buffer.write('awesome!');

  print(buffer.toString()); // Dart is awesome!
}

StringBuffer를 사용하면 새로운 문자열을 만들 때 불필요한 메모리 낭비를 줄일 수 있습니다.

대량의 문자열 데이터를 처리할 때 split()과 join()을 적극 활용
trim()을 활용하여 불필요한 공백을 제거해 데이터 정제
Flutter UI에서는 긴 문자열 처리 시 Text.overflow 속성을 설정하여 가독성 유지

728x90
728x90