CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /์ž๋ฐ” isDigit ๋ฉ”์„œ๋“œ
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

์ž๋ฐ” isDigit ๋ฉ”์„œ๋“œ

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
๋ถ€์šธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋Š” ๋Œ€๋ถ€๋ถ„ "is"๋ผ๋Š” ๋‹จ์–ด๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ ํ™•์ธ ์ค‘์ธ ์š”์†Œ๊ฐ€ ํŠน์ • ์กฐ๊ฑด๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์—์„œ ๋…ผ์˜ํ•  Character.isDigit() ๋ฉ”์„œ๋“œ๋Š” ์ง€์ •๋œ char ๊ฐ’์ด ์ˆซ์ž์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค .

์ž๋ฐ” isDigit ๋ฉ”์„œ๋“œ ๊ตฌ๋ฌธ

java.lang.Character.isDigit(char ch)๋Š” โ€‹โ€‹์ง€์ •๋œ ๋ฌธ์ž๊ฐ€ ์ˆซ์ž์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋ณ„ํ•˜๋Š” Java์˜ ๋‚ด์žฅ ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค. Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ปจํ…์ŠคํŠธ์—์„œ "์ˆซ์ž"๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? Java Doc์˜ ์ •์˜์— ๋”ฐ๋ฅด๋ฉด Character.getType(ch) ๋ฉ”์„œ๋“œ๊ฐ€ DECIMAL_DIGIT_NUMBER ์ƒ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋ฌธ์ž๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ˆซ์ž๋ฅผ ํฌํ•จํ•˜๋Š” ์ผ๋ถ€ ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž ๋ฒ”์œ„์ž…๋‹ˆ๋‹ค.
  • '\u0030'์—์„œ '\u0039'๊นŒ์ง€๋Š” ISO-LATIN-1 ์ˆซ์ž('0'์—์„œ '9')์ž…๋‹ˆ๋‹ค.

  • '\u0660'๋ถ€ํ„ฐ '\u0669'๊นŒ์ง€๋Š” ์•„๋ผ๋น„์•„-์ธ๋„ ์ˆซ์ž์ž…๋‹ˆ๋‹ค.

  • '\u06F0'๋ถ€ํ„ฐ '\u06F9'๊นŒ์ง€ ํ™•์žฅ๋œ ์•„๋ผ๋น„์•„-์ธ๋„ ์ˆซ์ž์ž…๋‹ˆ๋‹ค.

  • '\u0966'๋ถ€ํ„ฐ '\u096F'๊นŒ์ง€๋Š” ๋ฐ๋ฐ”๋‚˜๊ฐ€๋ฆฌ ์ˆซ์ž์ž…๋‹ˆ๋‹ค.

  • \uFF10'์—์„œ '\uFF19'๋Š” ์ „๊ฐ ์ˆซ์ž์ž…๋‹ˆ๋‹ค.

์ˆซ์ž๋ฅผ ํฌํ•จํ•˜๋Š” ๋‹ค๋ฅธ ๋ฒ”์œ„๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ '\u0030'์—์„œ '\u0039'๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Character.isDigit() ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

public static boolean isDigit(char myChar)
์—ฌ๊ธฐ์„œ myChar๋Š” ํ…Œ์ŠคํŠธํ•  ๋ฌธ์ž์ž…๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ๋ฌธ์ž๊ฐ€ ์ˆซ์ž์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค . Java doc isDigit(char myChar) ๋ฉ”์„œ๋“œ์— ๋”ฐ๋ฅด๋ฉด ๋ณด์กฐ ๋ฌธ์ž๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ณด์กฐ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž๋ฅผ ์ง€์›ํ•˜๋ ค๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” isDigit(int) ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋ณด์ด์ง€๋งŒ OOP ๋ฐ ๋‹คํ˜•์„ฑ ์ง€์› ๋•๋ถ„์— ์•ฝ๊ฐ„ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. public static boolean isDigit(int codePoint)๋Š” ์ง€์ •๋œ ๋ฌธ์ž(์œ ๋‹ˆ์ฝ”๋“œ ์ฝ”๋“œ ํฌ์ธํŠธ)๊ฐ€ ์ˆซ์ž์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž ์ธ์ฝ”๋”ฉ ์šฉ์–ด์—์„œ ์ฝ”๋“œ ํฌ์ธํŠธ ๋˜๋Š” ์ฝ”๋“œ ์œ„์น˜๋Š” ํŠน์ • ๋ฌธ์ž์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž ๊ฐ’์ž…๋‹ˆ๋‹ค.isDigit(int codePoint) ๋„ ๋ฌธ์ž๊ฐ€ ์ˆซ์ž์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค .

Java isDigit ๋ฉ”์„œ๋“œ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ

Java Characher.isDigit() ๋ฉ”์„œ๋“œ ๋กœ ์ž‘์—…ํ•ด ๋ด…์‹œ๋‹ค . ๋จผ์ € ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

public class isDigitTest {
//isDigit(char ch) simple example
   public static void main(String[] args)
   {

       //characters to check using isDigit Java method
       char myChar1 = '5', myChar2 = 'u', myChar3 = '0';

       // Function to check if the character
       // is digit or not, using isDigit() method
       System.out.println("is char " + myChar1 + " a digit? "
                       + Character.isDigit(myChar1));
       System.out.println(
               "is char " + myChar2 + " a digit? "
                       + Character.isDigit(myChar2));

       System.out.println(
               "is char " + myChar3 + " a digit? "
                       + Character.isDigit(myChar3));
   }
}
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ฌธ์ž 5๋Š” ์ˆซ์ž์ž…๋‹ˆ๊นŒ? true๋Š” char ua ์ˆซ์ž์ž…๋‹ˆ๊นŒ? false๋Š” char ua ์ˆซ์ž์ž…๋‹ˆ๊นŒ? ์ง„์‹ค

Java isDigit ๋ฉ”์„œ๋“œ, ์กฐ๊ธˆ ๋” ๋ณต์žกํ•œ ์˜ˆ์ œ

Character.isDigit()์„ ์‚ฌ์šฉํ•ด ๋ด…์‹œ๋‹ค.๋” ํฅ๋ฏธ๋กญ๊ณ  ์‹ค์ œ์ ์ธ ๋ฌธ์ œ์—์„œ. Run Length Encoding ๋˜๋Š” ์ค„์—ฌ์„œ RLE๋ผ๋Š” ์••์ถ• ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. Run Length Encoding์€ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž(์‹œ๋ฆฌ์ฆˆ)๋ฅผ ํ•˜๋‚˜์˜ ๋ฌธ์ž์™€ ๊ทธ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋กœ ๋Œ€์ฒดํ•˜๋Š” ๋ฐ์ดํ„ฐ ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์‹œ๋ฆฌ์ฆˆ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋™์ผํ•œ ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋œ ์‹œํ€€์Šค์ž…๋‹ˆ๋‹ค. ์ธ์ฝ”๋”ฉ(์••์ถ•, ์••์ถ•)ํ•  ๋•Œ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋™์ผํ•œ ๋ฌธ์ž์˜ ๋ฌธ์ž์—ด์€ ๋ฐ˜๋ณต ๋ฌธ์ž ์ž์ฒด์™€ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "hhhhhorrribleeee" ๋ฌธ์ž์—ด์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์‹คํ–‰ ๊ธธ์ด ์ธ์ฝ”๋”ฉ์€ h5or3ible5๋ผ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์„ ํ•ด๋…ํ–ˆ๋‹ค๋ฉด ์ˆซ์ž์ธ์ง€ ๋น„์ˆซ์ž์ธ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ํ™•์ธํ•ด์•ผ ํ•˜๊ณ , ์ˆซ์ž๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ์ˆซ์ž๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ผ ์ฐจ๋ก€๋‹ค. ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ์—ฌ๋Ÿฌ๋ถ„์€ ๋ชจ๋‘ JPEG ํŒŒ์ผ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ˜•์‹์€ ์–‘์žํ™”๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋Œ€๊ฐ์„  ํŒจํ„ด์œผ๋กœ ์‹คํ–‰ ๊ธธ์ด ์ธ์ฝ”๋”ฉ์˜ ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ณ€ํ˜•์€ 0 ๊ฐ’์˜ ์‹คํ–‰ ๊ธธ์ด๋งŒ ์ธ์ฝ”๋”ฉ๋˜๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฐ’์€ ์ž์ฒด์ ์œผ๋กœ ์ธ์ฝ”๋”ฉ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์—์„œ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.Run-length ์ธ์ฝ”๋”ฉ์œผ๋กœ ์ธ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด์„ ๋””์ฝ”๋”ฉํ•˜๋Š” Character.isDigit(char ch) ๋ฉ”์„œ๋“œ. ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๊ฑฐ๋‚˜ ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์„ ๋งŒ๋“ค๊ณ  ๋ฌธ์ž์—ด์„ RLE๋กœ ์ธ์ฝ”๋”ฉํ•˜๊ณ  ํŒŒ์ผ์—์„œ ๋ฌธ์ž์—ด์„ ์ฝ๋Š” ๋ฐฉ๋ฒ•์„ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค. ๋˜๋Š” ์ž…๋ ฅ์˜ ์ •ํ™•์„ฑ์„ ํ™•์ธํ•˜๋ฉด์„œ ์ฝ˜์†”์—์„œ ๋ฌธ์ž์—ด์„ ์ˆ˜๋™์œผ๋กœ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ RLE ๋””์ฝ”๋”ฉ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

public class RleTest {

   //the method to decode String using run-length encoding and 
//isDigit() method 
   private static String decodeRle(String encoded) {
       if (encoded.isBlank()) return "";
       StringBuilder result = new StringBuilder();
       int count = 0;
       char baseChar = encoded.charAt(0);
       for (int i = 1; i <= encoded.length(); i++) {
           char c = i == encoded.length() ? '$' : encoded.charAt(i);
//checking using isDigit() method           
if (Character.isDigit(c)) {
               count = count * 10 + Character.digit(c, 10);
           } else {
               do {
                   result.append(baseChar);
                   count--;
               } while (count > 0);
               count = 0;
               baseChar = c;
           }
       }
       return result.toString();
   }
   
public static void main(String[] args) {
//here we are going to decode an RLE-encoded string 
       System.out.println(decodeRle("C3ecddf8"));
   }
}
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
CCCecddffffffff
์šฐ๋ฆฌ๊ฐ€ String ์ด ์•„๋‹ˆ๋ผ StringBuilder ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ˆˆ์น˜์ฑ„์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค . ์™œ? ์‚ฌ์‹ค String ์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์นด์šดํ„ฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ์ƒˆ ๋ฌธ์ž์—ด์ด ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์—์„œ Character.digit ๋ฉ”์„œ๋“œ ๋„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค . java.lang.Character.digit()๋Š” ์ง€์ •๋œ ์ˆ˜ ์ฒด๊ณ„์—์„œ ๋ฌธ์ž ch ์˜ ์ˆซ์ž ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค . ๊ธฐ์ค€์ด MIN_RADIX <= ๊ธฐ์ค€ <= MAX_RADIX ๋ฒ”์œ„์— ์žˆ์ง€ ์•Š๊ฑฐ๋‚˜ ch๊ฐ€ ์ง€์ •๋œ ๊ธฐ์ค€์—์„œ ์œ ํšจํ•œ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๋ฉ”์„œ๋“œ๋Š” -1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION