๊ด€๋ฆฌ ๋ฉ”๋‰ด

Coding Planet

level 1. ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ฐ”๊พธ๊ธฐ/ ์ž๋ฐ” ๋ณธ๋ฌธ

๐ŸŽ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

level 1. ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ฐ”๊พธ๊ธฐ/ ์ž๋ฐ”

jhj.sharon 2023. 3. 28. 03:11
๋ฐ˜์‘ํ˜•

public class StrToInt {
    public int getStrToInt(String str) {
        boolean sign = true;

        int value = 0;
        for (char ch : str.toCharArray()) {
            if (ch == '-') {
                plus = false;

            } else {
                int num = ch - 48;
                value = num+value*10;
            }

        }
        return (plus==true)? value : -1*value;

    }
}

 

  • ์‚ฌ์‹ค ์ด ๋ฌธ์ œ๋Š” Integer.parseInt()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ„๋‹ค๋ฅธ ์ˆ˜์‹์ด ํ•„์š” ์—†์ด ๊ฐ„๋‹จํžˆ ํ’€๋ฆฌ๋Š” ๋ฌธ์ œ์ด๋‹ค.
  • ๊ทธ๋Ÿฌ๋‚˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•œ๋‹ค๋Š” ์˜๋ฏธ์—์„œ ๋…ผ๋ฆฌ์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ์งฐ๊ณ  ์—ญ๋Œ€๊ธ‰์œผ๋กœ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค. 
  • ๋จผ์ € ๋ถ€ํ˜ธ๋Š” + - ๋‹จ ๋‘๊ฐœ์˜ ๊ฐ’๋งŒ ๊ฐ€์ง€๋ฏ€๋กœ boolean ์ž๋ฃŒํ˜•์œผ๋กœ ์„ค์ •ํ–ˆ๋‹ค. +๋Š” true, -๋Š” false
  • toCharArray()๋Š” String์„ char[]๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์ฐพ์•„๋‚ด๊ธฐ ์ „์—๋Š”  CharAt์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ฐ˜๋ณต๋ฌธ ๋Œ๋ฆฌ๋Š” ๋…ธ๊ฐ€๋‹ค๋ฅผ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ๐Ÿคฆ‍โ™€๏ธ
  • ํ–ฅ์ƒ๋œ for๋ฌธ์„ ์ด์šฉํ•ด์„œ char[]์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋Œ๋ ค์ฃผ๊ณ  - ๋ถ€ํ˜ธ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋ถ€ํ˜ธ๋Š” false๋กœ ์„ค์ •ํ•ด์ค€๋‹ค. ๋งŒ์•ฝ -๋ถ€ํ˜ธ๊ฐ€ ์—†๋Š” ์–‘์ˆ˜๋ผ๋ฉด ๋ฌธ์ž(ch)์—์„œ 48์„ ๋นผ์ค˜์„œ ์ˆซ์ž๊ฐ’์œผ๋กœ ๋‚˜ํƒ€๋‚ด์ค€๋‹ค.
  • -> Character์— ์—ฐ์‚ฐ์„ ํ•  ๊ฒฝ์šฐ Character๋Š” ์ด์— ๋Œ€์‘๋˜๋Š” ASCII ๊ฐ’์œผ๋กœ ๋ฐ”๋€Œ์–ด ์—ฐ์‚ฐ์„ ํ•œ๋‹ค. ์ด ๋•Œ ๋ฌธ์ž๋กœ ์ธ์‹๋˜๋Š” 0~9๋Š” ASCII ์‹ญ์ง„๋ฒ•์œผ๋กœ 48~57์ธ๋ฐ ์—ฌ๊ธฐ์„œ ๋ฌธ์ž 0์— ํ•ด๋‹นํ•˜๋Š” 48์„ ๋นผ์ค„ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ’์€ '์ˆซ์ž'๊ฐ€ ๋œ๋‹ค.  ์„ค๋ช…์ด ๋งค๋„๋Ÿฝ์ง€ ์•Š์€๋ฐ ์•„๋ž˜ ASCII ์ฝ”๋“œ๋ฅผ ํ‘œ๋ฉด ๋Œ€๋žต์ ์œผ๋กœ ์ดํ•ด๊ฐ€ ๊ฐˆ ๊ฒƒ์ด๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด ASCII Code์—์„œ ๋ฌธ์ž 1์€ 10์ง„์ˆ˜๋กœ 48์ด๋‹ค. ๋ฌธ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ์—์„œ '1' - '0' ํ˜น์€ '1'-48์€ ์ˆซ์ž 1์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ์ด์ œ intํ˜•์œผ๋กœ ๋ณ€ํ™˜๋œ ์ˆซ์ž๋“ค์„ ๊ฐ ์ž๋ฆฌ์ˆ˜์— ๋งž๊ฒŒ ์„ค์ •ํ•ด์ค˜์•ผ ํ•˜๋ฏ€๋กœ value*10์„ ๊ณ„์‚ฐ์— ์ž๋ฆฟ์ˆ˜๋ฅผ ํ•˜๋‚˜์”ฉ ์•ž์œผ๋กœ ๋ฐ€์–ด์ค€๋‹ค. 
  • ์˜ˆ๋ฅผ ๋“ค์–ด 123์ด๋ผ๋Š” ๋ฌธ์ž๊ฐ€ ๋“ค์–ด๊ฐˆ ๊ฒฝ์šฐ for๋ฌธ์ด ์ˆœ์„œ๋Œ€๋กœ ๋Œ ๋•Œ ๋งˆ๋‹ค value ๋Š” 1, 12, 123์œผ๋กœ ์กฐ์ •๋œ๋‹ค.
  • ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋กœ ์ˆซ์ž์˜ ๋ถ€ํ˜ธ๋ฅผ ๊ณ ๋ คํ•ด ์ตœ์ข…  return๊ฐ’์„ ์ •ํ•˜๋ฉด ๋œ๋‹ค ~~~ ๋!

 

 

๐ŸŒฑ ์‹œ๊ฐ„์ด ๋ฌด์ฒ™ ์˜ค๋ž˜ ์†Œ์š”๋˜์—ˆ์ง€๋งŒ ๋•๋ถ„์— Integer.parseInt()๋ฉ”์„œ๋“œ๊ฐ€ ์–ด๋–ค์‹์œผ๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ๋Š”์ง€ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ์˜€๋‹ค.

 

 

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•
Comments