
โ . ์๋ก : 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('๋น๋ฐ๋ฒํธ๊ฐ ๋ค๋ฆ
๋๋ค.');
}
}
โ ๋ฌธ์์ด ํฌํจ ์ฌ๋ถ ํ์ธ (contains)
ํน์ ๋ฌธ์์ด์ด
ํฌํจ๋์ด ์๋์ง ํ์ธํ ๋
contains() ๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ๊ฒ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ฑฐ๋
ํน์ ํค์๋๊ฐ ํฌํจ๋ ๋ฐ์ดํฐ๋ง
ํํฐ๋งํ ๋ ์ ์ฉํฉ๋๋ค.
void main() {
String text = 'Flutter is awesome';
print(text.contains('Flutter')); // true
print(text.contains('Dart')); // false
}
๐ contains()๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์์ด์์ ํน์ ๋จ์ด๊ฐ ํฌํจ๋์ด ์๋์ง ์ฝ๊ฒ ํ์ธํ ์ ์์ต๋๋ค!
Step 5: ๋ฌธ์์ด ๋ณํ (๋์๋ฌธ์ ๋ณ๊ฒฝ, ๊ณต๋ฐฑ ์ ๊ฑฐ, ํ ๋ณํ) ๋ณด์ ์ค๋ช
โ ๋์๋ฌธ์ ๋ณํ (toUpperCase(), toLowerCase())
์ด ๊ธฐ๋ฅ์
์ฌ์ฉ์์ ์ ๋ ฅ์ ๋น๊ตํ ๋
๋์๋ฌธ์๋ฅผ ๋ฌด์ํ๊ณ ์ฒ๋ฆฌํ๊ฑฐ๋,
๋ชจ๋ ํ ์คํธ๋ฅผ
๋์ผํ ํฌ๋งท์ผ๋ก ๋ณํํ ๋ ์ ์ฉํฉ๋๋ค.
void main() {
String text = 'Hello Dart';
print('๋๋ฌธ์๋ก ๋ณํ: ${text.toUpperCase()}'); // HELLO DART
print('์๋ฌธ์๋ก ๋ณํ: ${text.toLowerCase()}'); // hello dart
}
โ ๊ณต๋ฐฑ ์ ๊ฑฐ (trim())
์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๊ฑฐ๋
๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋
์๋ค ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๋ ๊ฒ์ด
์ค์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด,
๋ก๊ทธ์ธ ์ ๋ ฅ ํ๋์์
์ฌ์ฉ์๊ฐ ์ค์๋ก ๊ณต๋ฐฑ์ ์ ๋ ฅํ๋ฉด
์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์
์ด๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค
void main() {
String text = ' Dart ';
print('์๋ณธ ๋ฌธ์์ด: "$text"');
print('trim() ์ ์ฉ ํ: "${text.trim()}"');
}
โ ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํ (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 ์์ฑ์ ์ค์ ํ์ฌ ๊ฐ๋
์ฑ ์ ์ง