Flutter (์•ฑ ๊ฐœ๋ฐœ)/Dart ์ฝ”๋“œ ์ฒจ๋ถ€ ํŒŒ์ผ

[Dart ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž…] Dart์—์„œ ๋ฌธ์ž์—ด(String) ๋‹ค๋ฃจ๊ธฐ ๋ฐ ์ฃผ์š” ๋ฉ”์„œ๋“œ(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ ์ œ๊ณต)

๋ชฝ๋ฌผ๊ณ ๊ธฐ๐“†œ 2025. 2. 23. 19:55
728x90
728x90

 

 
๋ชฉ์ฐจ

โ… . ์„œ๋ก : Dart์—์„œ ๋ฌธ์ž์—ด(String)์„ ๋‹ค๋ฃจ๋Š” ์ด์œ 

๐Ÿ“Œ 1. ๋ฌธ์ž์—ด์ด ์ค‘์š”ํ•œ ์ด์œ 

๐Ÿ“Œ 2. ๋ฌธ์ž์—ด์„ ์„ ์–ธํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•

 

โ…ก. ๋ณธ๋ก : ๋ฌธ์ž์—ด ์„ ์–ธ ๋ฐ ์ฃผ์š” ๋ฉ”์„œ๋“œ ํ™œ์šฉํ•˜๊ธฐ

๐Ÿ“Œ Step 1: ๋ฌธ์ž์—ด ์„ ์–ธ ๋ฐ ๋‹ค์–‘ํ•œ ํ‘œ๊ธฐ๋ฒ•

๐Ÿ“Œ Step 2: ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ ๋ฐ ๋ณด๊ฐ„๋ฒ• (Interpolation)

๐Ÿ“Œ Step 3: ๋ฌธ์ž์—ด ๊ธธ์ด ํ™•์ธ ๋ฐ ํŠน์ • ๋ฌธ์ž ์ ‘๊ทผ

๐Ÿ“Œ Step 4: ๋ฌธ์ž์—ด ๋น„๊ต ๋ฐ ํฌํ•จ ์—ฌ๋ถ€ ์ฒดํฌ

๐Ÿ“Œ Step 5: ๋ฌธ์ž์—ด ๋ณ€ํ™˜ (๋Œ€์†Œ๋ฌธ์ž ๋ณ€๊ฒฝ, ๊ณต๋ฐฑ ์ œ๊ฑฐ, ํ˜• ๋ณ€ํ™˜)

๐Ÿ“Œ Step 6: ๋ฌธ์ž์—ด ๋ถ„ํ•  ๋ฐ ๋ฆฌ์ŠคํŠธ ๋ณ€ํ™˜ (split, join)

 

โ…ข. ๋ฌธ์ž์—ด์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

๐Ÿ“Œ  Flutter UI์—์„œ ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃฐ ๋•Œ ๊ณ ๋ คํ•  ์ 

๐Ÿ“Œ ์„ฑ๋Šฅ์„ ๊ณ ๋ คํ•œ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•

 

 

 

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

'Flutter (์•ฑ ๊ฐœ๋ฐœ) > Dart ์ฝ”๋“œ ์ฒจ๋ถ€ ํŒŒ์ผ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Dart ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž…] Dart์˜ ๋ฆฌ์ŠคํŠธ(List)์™€ Set, Map ์ปฌ๋ ‰์…˜ ๊ฐœ๋…(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ ์ œ๊ณต)  (0) 2025.02.23
[Dart ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž…] ์ˆซ์ž(Number) ํƒ€์ž…๊ณผ ์—ฐ์‚ฐ์ž ํ™œ์šฉ๋ฒ•(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ ์ œ๊ณต)  (1) 2025.02.23
[Dart ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž…] var, dynamic, const, final ์ฐจ์ด์  ์ •๋ฆฌ(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ ์ œ๊ณต)  (1) 2025.02.23
[Dart ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž…] Dart์˜ ์ฃผ์š” ๋ฐ์ดํ„ฐ ํƒ€์ž… (int, double, String, bool)(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ ์ œ๊ณต)  (0) 2025.02.23
[Dart ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž…] Dart์—์„œ ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ดํ•ดํ•˜๊ธฐ(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ ์ œ๊ณต)  (1) 2025.02.23