Coding Planet
CSV ์์ฑ์ ํน์๋ฌธ์ Escape ์ฒ๋ฆฌํ๋ ๋ฉ์๋ ๋ณธ๋ฌธ
๐ป Java Study/Java ์ด๋ก ์ ๋ฆฌ
CSV ์์ฑ์ ํน์๋ฌธ์ Escape ์ฒ๋ฆฌํ๋ ๋ฉ์๋
jhj.sharon 2024. 5. 20. 11:05๋ฐ์ํ
private static String escapeSpecialCharacters(String data) {
if (data == null) {
return "";
}
String escapedData = data.replace("\"", "\"\"");
if (data.contains(",") || data.contains("\n") || data.contains("\"")) {
escapedData = "\"" + escapedData + "\"";
}
return escapedData;
}
}
๋ฐ์ดํฐ๋ฅผ csv๋ก ๋ง๋๋ ๊ณผ์ ์์ ํน์๋ฌธ์์ ๋ํ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ค. data list์์ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ํํ๋ฉด์ ์ ์ ํ๊ฒ ํน์๋ฌธ์๋ฅผ escapeํด์ ๋ด์์ผํ๋ค.
- NULL ์ฒดํฌ
- ์
๋ ฅ ๋ฐ์ดํฐ
data
๊ฐnull
์ธ ๊ฒฝ์ฐ, ๋น ๋ฌธ์์ด์ ๋ฐํ - ํ์ผ์
null
๊ฐ์ด ์ ๋ ฅ๋์ง ์๋๋ก ๋ฐฉ์ง
- ์
๋ ฅ ๋ฐ์ดํฐ
- ํน์ ๋ฌธ์ ์ด์ค์ผ์ดํ ์ฒ๋ฆฌ
- ์
๋ ฅ ๋ฐ์ดํฐ์
"
(ํฐ๋ฐ์ดํ)๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ, ์ด๋ฅผ""
(์ด์ค ํฐ๋ฐ์ดํ)๋ก ๋ณ๊ฒฝ - CSV ํ์์์๋ ๋ฐ์ดํฐ ๋ด์ ํฐ๋ฐ์ดํ๊ฐ ํฌํจ๋์ด ์์ ๋ ์ด๋ฅผ ์ด์ค ํฐ๋ฐ์ดํ๋ก ์ด์ค์ผ์ดํํด์ผ ํจ
- ์
๋ ฅ ๋ฐ์ดํฐ์
- ๋ฐ์ดํฐ ๊ฐ์ธ๊ธฐ
- ๋ฐ์ดํฐ์
,
(์ผํ),\n
(์ค๋ฐ๊ฟ ๋ฌธ์), ๋๋"
(ํฐ๋ฐ์ดํ)๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฅผ ํฐ๋ฐ์ดํ๋ก ๊ฐ์ผ๋ค. - ์ผํ๋ CSV ํ์ผ์์ ํ๋ ๊ตฌ๋ถ์๋ก ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ ๋ด์ ์ผํ๊ฐ ์์ ๊ฒฝ์ฐ ์ด๋ฅผ ํฐ๋ฐ์ดํ๋ก ๊ฐ์ธ์ผ ํ๋ ๊ฒฝ๊ณ๊ฐ ๋ช ํํด์ง.
- ์ค๋ฐ๊ฟ ๋ฌธ์๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ, ํ ํ๋ ๋ด์์ ์ฌ๋ฌ ์ค์ ํฌํจํ ์ ์๋๋ก ํฐ๋ฐ์ดํ๋ก ๊ฐ์ธ์ผ ํจ.
- ํฐ๋ฐ์ดํ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ, ์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ ์ด์ค์ผ์ดํ ์ฒ๋ฆฌ์ ํจ๊ป ์ ์ฒด๋ฅผ ํฐ๋ฐ์ดํ๋ก ๊ฐ์ธ์ ํ ์คํธ๋ก ์ฒ๋ฆฌ.
- ๋ฐ์ดํฐ์
์์
- ์ผ๋ฐ ๋ฌธ์์ด:
- ์
๋ ฅ:
Hello
- ์ถ๋ ฅ:
Hello
- ์
๋ ฅ:
- ์ผํ ํฌํจ ๋ฌธ์์ด:
- ์
๋ ฅ:
Hello,World
- ์ถ๋ ฅ:
"Hello,World"
- ์
๋ ฅ:
- ์ค๋ฐ๊ฟ ํฌํจ ๋ฌธ์์ด:
- ์
๋ ฅ:
Hello\nWorld
- ์ถ๋ ฅ:
"Hello\nWorld"
- ์
๋ ฅ:
- ํฐ๋ฐ์ดํ ํฌํจ ๋ฌธ์์ด:
- ์
๋ ฅ:
He said "Hello"
- ์ถ๋ ฅ:
"He said ""Hello"""
- ์
๋ ฅ:
๋ฐ์ํ
'๐ป Java Study > Java ์ด๋ก ์ ๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments