본문 바로가기
Dart/Study

Dart에서 타이머 숫자를 항상 두자리로 표시해주는 padLeft 메서드 사용법

by Maccrey Coding 2024. 11. 30.
728x90
반응형

 

padLeft는 Dart에서 문자열을 원하는 길이만큼 왼쪽으로 패딩(채우기)하여 새 문자열을 반환하는 메서드입니다.

주로 문자열의 길이를 특정 값으로 맞추거나, 좌측 정렬된 형태를 유지하고 싶을 때 사용됩니다.

메서드 시그니처

String padLeft(int width, [String padding = ' ']);

 

  • width: 결과 문자열의 최소 길이입니다. 원래 문자열의 길이가 width보다 작다면, 왼쪽에 padding 문자를 추가합니다.
  • padding: 선택적 매개변수로, 문자열 왼쪽을 채울 문자입니다. 기본값은 공백(' ')입니다.

주요 특징

  1. 원래 문자열의 길이가 width와 같거나 크다면, 원래 문자열 그대로 반환됩니다.
  2. 문자열이 지정된 길이에 도달할 때까지 padding이 반복적으로 추가됩니다.

사용 예제

1. 기본 사용법

공백으로 왼쪽을 채우는 기본 예제입니다.

void main() {
  String text = '42';
  String paddedText = text.padLeft(5);
  print(paddedText); // 출력: '   42' (공백 3칸)
}

 

2. 사용자 정의 패딩 문자

공백 대신 다른 문자를 사용하여 패딩할 수도 있습니다.

void main() {
  String text = '42';
  String paddedText = text.padLeft(5, '0');
  print(paddedText); // 출력: '00042'
}

3. 원래 문자열이 충분히 긴 경우

원래 문자열의 길이가 width보다 크거나 같으면 패딩 없이 원래 문자열이 반환됩니다.

void main() {
  String text = 'hello';
  String paddedText = text.padLeft(3, '*');
  print(paddedText); // 출력: 'hello' (변경 없음)
}

4. 복합 예제: 숫자 정렬

padLeft를 사용해 숫자를 정렬할 때 유용합니다.

void main() {
  List<String> numbers = ['1', '12', '123'];
  for (var number in numbers) {
    print(number.padLeft(5, '0'));
  }
  // 출력:
  // 00001
  // 00012
  // 00123
}

사용 시 주의점

    • 패딩 문자 길이: padding은 반드시 한 글자여야 합니다. 두 글자 이상의 문자열을 전달하면 에러가 발생합니다.
void main() {
  String text = '42';
  // String paddedText = text.padLeft(5, '00'); // 에러 발생
}
  • 음수 또는 0의 width: width가 0 이하일 경우, 원래 문자열이 그대로 반환됩니다.
void main() {
  String text = '42';
  print(text.padLeft(0)); // 출력: '42'
  print(text.padLeft(-3)); // 출력: '42'
}

padLeft 메서드는 문자열의 좌측 정렬, 길이 조정, 또는 특정 형식의 출력이 필요할 때 유용한 기능을 제공합니다.

특히 숫자를 다룰 때 유용하며, 다양한 패딩 문자를 사용해 커스터마이징할 수도 있습니다.

 

Time 구현 예시

import 'package:calender_scheduler/Const/colors.dart';
import 'package:flutter/material.dart';

class _Time extends StatelessWidget {
  final int startTime; //시작 시간
  final int endTime; //종료시간

  const _Time({required this.startTime, required this.endTime, Key? key})
      : super(key: key);

  @override
  Widget build(BuildContext context) {
    final textStyle = TextStyle(
      fontWeight: FontWeight.w600,
      color: PRIMARY_COLOR,
      fontSize: 16,
    );
    return Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        //숫자가 두 자릿수가 안 되면 0으로 채워주기
        Text('${startTime.toString().padLeft(2, '0')}: 00', style: textStyle),
        Text('${endTime.toString().padLeft(2, '0')}: 00', style: textStyle),
      ],
    );
  }
}

Dart에서 문자열을 다루는 작업을 할 때 padLeft를 활용해 보세요! 🎯

 

 

구독!! 공감과 댓글,

광고 클릭은 저에게 큰 힘이 됩니다.

 

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

728x90
반응형