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ํ•ด์„œ ๋‹ด์•„์•ผํ•œ๋‹ค.

  1. NULL ์ฒดํฌ
    • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ data๊ฐ€ null์ธ ๊ฒฝ์šฐ, ๋นˆ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜
    • ํŒŒ์ผ์— null ๊ฐ’์ด ์ž…๋ ฅ๋˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€
  2. ํŠน์ˆ˜ ๋ฌธ์ž ์ด์Šค์ผ€์ดํ”„ ์ฒ˜๋ฆฌ
    • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— " (ํฐ๋”ฐ์˜ดํ‘œ)๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ, ์ด๋ฅผ "" (์ด์ค‘ ํฐ๋”ฐ์˜ดํ‘œ)๋กœ ๋ณ€๊ฒฝ
    • CSV ํ˜•์‹์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋‚ด์— ํฐ๋”ฐ์˜ดํ‘œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„ ๋•Œ ์ด๋ฅผ ์ด์ค‘ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ์ด์Šค์ผ€์ดํ”„ํ•ด์•ผ ํ•จ
  3. ๋ฐ์ดํ„ฐ ๊ฐ์‹ธ๊ธฐ
    • ๋ฐ์ดํ„ฐ์— , (์‰ผํ‘œ), \n (์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž), ๋˜๋Š” " (ํฐ๋”ฐ์˜ดํ‘œ)๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๋ฅผ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ผ๋‹ค.
    • ์‰ผํ‘œ๋Š” CSV ํŒŒ์ผ์—์„œ ํ•„๋“œ ๊ตฌ๋ถ„์ž๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ์ดํ„ฐ ๋‚ด์— ์‰ผํ‘œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ด๋ฅผ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์•ผ ํ•„๋“œ ๊ฒฝ๊ณ„๊ฐ€ ๋ช…ํ™•ํ•ด์ง.
    • ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ, ํ•œ ํ•„๋“œ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ์ค„์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋„๋ก ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์•ผ ํ•จ.
    • ํฐ๋”ฐ์˜ดํ‘œ๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ, ์•ž์„œ ์„ค๋ช…ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ด์Šค์ผ€์ดํ”„ ์ฒ˜๋ฆฌ์™€ ํ•จ๊ป˜ ์ „์ฒด๋ฅผ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์„œ ํ…์ŠคํŠธ๋กœ ์ฒ˜๋ฆฌ.

์˜ˆ์ œ

  1. ์ผ๋ฐ˜ ๋ฌธ์ž์—ด:
    • ์ž…๋ ฅ: Hello
    • ์ถœ๋ ฅ: Hello
  2. ์‰ผํ‘œ ํฌํ•จ ๋ฌธ์ž์—ด:
    • ์ž…๋ ฅ: Hello,World
    • ์ถœ๋ ฅ: "Hello,World"
  3. ์ค„๋ฐ”๊ฟˆ ํฌํ•จ ๋ฌธ์ž์—ด:
    • ์ž…๋ ฅ: Hello\nWorld
    • ์ถœ๋ ฅ: "Hello\nWorld"
  4. ํฐ๋”ฐ์˜ดํ‘œ ํฌํ•จ ๋ฌธ์ž์—ด:
    • ์ž…๋ ฅ: He said "Hello"
    • ์ถœ๋ ฅ: "He said ""Hello"""

 

๋ฐ˜์‘ํ˜•
Comments