문자열 조작

ssh·2023년 12월 10일
0

dart

목록 보기
14/22

문자열 내 변수 삽입(String interpolation)

텍스트 안에 변수를 삽입하는 방법 (interpolation : 써넣기)

  1. 단순 삽입은 따옴표 내부에 $변수명
  2. 변수를 계산하여 삽입하는 법은 ${계산식}
  3. $ 그대로 표시는 escape문자 $

String 내부에 따옴표 사용은 \' 혹은 \"를 사용하거나 다른 따옴표로 String 열고 닫기

  • 코드1
    void main() {
      var name = 'shin';
      var greeting = 'hello everyone, my name is $name, nice to meet you!';
      print(greeting);
    }
  • 코드2
    void main() {
      var name = 'shin';
      var age = 26;
      var greeting = 'hello everyone, my name is $name, and I\'m ${age+1}';
      print(greeting);
    }
  • 코드3
      print('${user} is ${age} years old.');

주요 문자열 속성

  • length: 문자열의 길이 (공백문자 포함)
  • isEmpty: 빈 문자열일 경우 참
  • isNotEmpty: 빈 문자열이 아닐 경우 참
  • codeUnits:문자열의 UTF-18 문자 코드
    • 코드
        const s1 = 'Hi';
        const s2 = '';
      
        print(s1.length);  // 2
        print(s2.length);  // 0
      
        print(s1.isEmpty);  // false
        print(s2.isEmpty);  // true
      
        print(s1.isNotEmpty);  // true
        print(s2.isNotEmpty);  // false
      
        print(s1.codeUnits);  // [72, 105]
        print(s2.codeUnits);  // []
      

문자열 처리

String 생성:

  • Dart에서는 작은 따옴표 (') 또는 큰 따옴표 (")로 둘러싸인 문자열 리터럴을 사용하여 문자열을 생성할 수 있다.
    • 코드
      String name = 'John';
      String message = "Hello, world!";

String 연결:

  • 문자열을 연결하기 위해 + 연산자를 사용할 수 있다.
    • 코드
      String firstName = 'John';
      String lastName = 'Doe';
      String fullName = firstName + ' ' + lastName;

String interpoloation:

  • 문자열 보간(interpolation)을 사용하면 문자열 내에서 변수나 표현식을 쉽게 삽입할 수 있다. 문자열 보간은 ${} 안에 변수나 표현식을 넣는 방식으로 작성된다.
    • 코드
      String name = 'John';
      'Hello, ${name}!'
      //'Hello, John!'

String Length:

  • 문자열의 길이를 알고 싶을 때는 length 속성을 사용한다.
    • 코드
      String text = 'Hello, world!';
      int length = text.length;
      // 를 사용하여 문자열의 길이를 얻을 수 있다.

문자열 검색: contains()

  • 문자열 내에서 특정 패턴을 검색하기 위해 contains() 메서드를 사용할 수 있다. 이 메서드는 문자열이 특정 패턴을 포함하는지 여부를 반환한다.
    • 코드
      String text = 'Hello, world!';
      bool contains = text.contains('world');

문자열 대체: replaceAll()

  • 문자열 내에서 특정 패턴을 다른 값으로 대체하기 위해 replaceAll() 메서드를 사용할 수 있다. 이 메서드는 첫 번째 매개변수로 대체할 패턴을, 두 번째 매개변수로 대체할 값을 받는다.
    • 코드
      String text = 'Hello, world!';
      String replacedText = text.replaceAll('world', 'Dart');
      //를 사용하여 'Hello, Dart!'로 문자열을 대체할 수 있다.

문자열 검색 및 대체: creplaceFirst(), replaceFirstMapped()

  • 문자열 내에서 특정 패턴을 검색하고 이를 다른 값으로 대체하기 위해 replaceFirst() 또는 replaceFirstMapped() 메서드를 사용할 수 있다. replaceFirst() 메서드는 첫 번째 매개변수로 검색할 패턴을, 두 번째 매개변수로 대체할 값을 받는다. replaceFirstMapped() 메서드는 첫 번째 매개변수로 검색할 패턴을, 두 번째 매개변수로 대체할 값을 생성하는 함수를 받는다.
    • 코드
      String text = 'Hello, world!';
      String replacedText = text.replaceFirst('world', 'Dart');
      String replacedText = text.replaceFirstMapped('world', (match) => 'Dart');
      //를 사용하여 첫 번째로 검색되는 'world'를 'Dart'로 대체할 수 있다.

문자열 비교: compareTo()

  • 문자열을 비교하기 위해 compareTo() 메서드를 사용할 수 있다. 이 메서드는 두 개의 문자열을 비교하고 결과를 반환한다. 비교 결과에 따라 음수, 양수 또는 0을 반환하며, 문자열이 작은지, 큰지 또는 동일한지를 나타낸다.
    • 코드
      String text1 = 'apple';
      String text2 = 'banana';
      int result = text1.compareTo(text2);
      //를 사용하여 두 문자열을 비교할 수 있다.

문자열 확인: isEmpty(), isNotEmpaty()

  • 문자열이 비어있는지 또는 공백으로만 이루어져 있는지 확인하기 위해 isEmpty 및 isNotEmpty 속성을 사용할 수 있다. isEmpty는 문자열이 비어있는지 여부를 확인하고, isNotEmpty는 문자열이 비어있지 않은지를 확인한다.
    • 코드
      String text = '';
      bool empty = text.isEmpty;
      //와 같이 문자열이 비어있는지를 확인할 수 있다.

문자열 변환: parse()

  • 문자열을 다른 타입으로 변환하기 위해 int.parse() 또는 double.parse() 메서드를 사용할 수 있다. 이 메서드는 문자열을 정수나 실수로 변환한다. 변환할 수 없는 문자열을 변환하려고 하면 예외가 발생할 수 있다.
    • 코드
      String number = '10';
      int value = int.parse(number);
      //와 같이 문자열을 정수로 변환할 수 있습니다.

문자열 형식화: format()

  • 문자열을 특정 형식에 맞게 형식화하기 위해 String.format() 메서드를 사용할 수 있다. 이 메서드는 형식 지정자를 사용하여 문자열 내에서 변수를 대체할 수 있는 기능을 제공한다. Hello, %s와 같은 문자열 내에서 %s는 문자열로 대체될 변수를 나타낸다. 이를 사용하여 특정 값을 문자열 내에 삽입할 수 있다.

문자열 일부 추출: substring(),

  • substring():
    • 문자열에서 주어진 시작 인덱스부터 끝 인덱스까지 가져온다.
    • 끝 인덱스를 지정하지 않으면 문자열 끝까지 반환한다.
    • 문자열에서 일부분을 추출하기 위해 substring() 메서드를 사용할 수 있다. 이 메서드는 시작 인덱스와 종료 인덱스를 지정하여 원하는 부분 문자열을 추출한다.
      • 코드1
          const string = 'dartlang';
          print(string.substring(1)); // 'artlang'
          print(string.substring(1, 4)); // 'art'
        
      • 코드2
        String text = 'Hello, world!';
        String part = text.substring(7, 12);
        //를 사용하여 world를 추출할 수 있다.
      • 코드3
          const string = 'Dartisans';
          print(string.indexOf('Da'));  // 0
          print(string.indexOf('art'));  // 1
          print(string.indexOf('sans')); // 5
        

문자열 위치: indexOf()

  • indexOf(): 문자열에서 주어진 문자열의 위치 인덱스값을 반환한다.
    • 코드
      final String s1 = 'hello dart';
      print(s1.indexOf('h'));
      print(s1.indexOf('dart'));

문자열 리스트로 반환: split(),

  • 코드
      const s = 'root:*:0:0:System Administrator:/var/root:/bin/sh';
    
      const words = s.split(':');  // 문자열을 주어진 문자로 쪼개 나눈다.
      print(words); // [root, *, 0, 0, System Administrator, /var/root, /bin/sh]
    
      const t = words.join('.'); // 문자열의 리스트를 주어진 문자로 연결한다.
      print(t); // root.*.0.0.System Administrator./var/root./bin/sh
    
  • split():
    • 문자열을 주어진 문자로 쪼개서 리스트로 반환한다.
    • 문자열을 특정 구분자를 기준으로 분할할 수 있다. split() 메서드를 사용하여 문자열을 분할하고 결과를 리스트로 반환할 수 있다.
      • 코드
        String text = 'Hello, world!';
        List< String > parts = text.split(', ');
        //를 사용하여 ,와 공백을 기준으로 문자열을 분할할 수 있다.

문자열을 하나의 문자열로 결합: join()

  • join(): 문자열 리스트를 주어진 문자로 연결하여 반환한다.
    (join() 메소드는 사실 리스트의 메소드이다.)

문자열 공백제거: trim()trimLeft()trimRight()

  • 코드
      const s = '  Hello, world!  ';
    
      print('[${s.trim()}]');  // [Hello, world!]
      print('[${s.trimLeft()}]');  // [Hello, world!  ]
      print('[${s.trimRight()}]');  // [  Hello, world!]
    
  • trim(): 문자열의 좌우 공백을 모두 제거하여 반환한다.
  • trimLeft(): 문자열의 왼쪽 공백을 제거하여 반환한다.
  • trimRight(): 문자열의 오른쪽 공백을 제거하여 반환한다.

문자열 패딩 추가: padLeft()padRight()

  • 코드
    const string = 'D';
    print(string.padLeft(4)); // '   D'
    print(string.padLeft(2, 'x')); // 'xD'
    print(string.padLeft(4, 'y')); // 'yyyD'
    print(string.padLeft(4, '>>')); // '>>>>>>D'
    
    print(string.padRight(4)); // 'D    '
    print(string.padRight(2, 'x')); // 'Dx'
    print(string.padRight(4, 'y')); // 'Dyyy'
    print(string.padRight(4, '>>')); // 'D>>>>>>'
    
  • padLeft(): 왼쪽으로 주어진 문자를 갯수만큼 채운다. 문자를 지정하지 않으면 빈 문자열로 채운다.
  • padRight(): 오른쪽으로 주어진 문자를 갯수만큼 채운다. 문자를 지정하지 않으면 빈 문자열로 채운다.

문자열이 특정 접두사, 접미사로 끝나는지 확인: startsWith()endsWith()

  • 코드
      const string = 'Dart is open source';
      print(string.startsWith('Dar')); // true
    
      print(string.startsWith('art', 0)); // false
      print(string.startsWith('art', 1)); // true
    
      print(string.endsWith('urce')); // true
    

문자열을 대소문자로 변환: toUpperCase()toLowerCase()

  • 문자열을 대소문자로 변환하기 위해 toLowerCase() 및 toUpperCase() 메서드를 사용할 수 있다. toLowerCase() 메서드는 문자열의 모든 문자를 소문자로 변환하고, toUpperCase() 메서드는 문자열의 모든 문자를 대문자로 변환한다.
    • 코드1
      String text = 'Hello, world!';
      String lowerCaseText = text.toLowerCase();
      String upperCaseText = text.toUpperCase();
      //를 사용하여 문자열을 소문자 또는 대문자로 변환할 수 있다.
    • 코드2
        const s = 'Hi, pincoin!';
      
        print(s.toUpperCase());  // HI, PINCOIN!
        print(s.toLowerCase());  // hi, pincoin!
      
  • toUpperCase(): 주어진 문자열을 모두 대문자로 바꿔 반환한다.
  • toLowerCase(): 주어진 문자열을 모두 소문자로 바꿔 반환한다.

참고

String class - dart:core library - Dart API

0개의 댓글

관련 채용 정보