본문 바로가기

백엔드132

알고리즘 // 알파벳으로 시작하고 _ 숫자 영문자만 허용하는 8-30 길이의 단어 String pattern = "^[a-zA-Z][a-zA-Z_0-9]{7,29}$"; String input = ""; Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(input); if (m.find()) { System.out.println("Valid"); } else { System.out.println("Invalid"); } ------ // 파일확장자 String pattern = "^\\S+.(?i)(txt|pdf|hwp|xls)$"; String input = "abc.txt"; boolean i = Pattern.matches(pattern, input).. 2024. 3. 20.
같은 단어 제거 정규식 String regex = "(?i)\\b([a-z]+)\\b(?:\\s+\\1\\b)+"; Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Scanner in = new Scanner(System.in); int numSentences = Integer.parseInt(in.nextLine()); while (numSentences-- > 0) { String input = in.nextLine(); Matcher m = p.matcher(input); while (m.find()) { input = input.replaceAll(m.group(0),m.group(1)); } System.out.println(input); } in.clos.. 2024. 3. 20.
자바 정수범위 // - 2^7 ~ 2^7-1; byte a = Byte.MAX_VALUE; byte b = Byte.MAX_VALUE; // - 2^15 ~ 2^15-1 short s1 = Short.MIN_VALUE; short s2 = Short.MAX_VALUE; // - 2^31 ~ 2^31-1 int i1 = Integer.MIN_VALUE; int i2 = Integer.MAX_VALUE; // - 2^63 ~ 2^63-1 long h1 = Long.MIN_VALUE; long h2 = Long.MAX_VALUE; byte aa = (byte) (new BigInteger("2").pow(7).longValue()); //-128 - as expected short bb = (short) (new BigIn.. 2024. 3. 20.
StringBuffer 와 StringBuilder 의 차이 StringBuilder와 StringBuffer는 메소드명까지 같다.그렇다면 두개의 차이점은 무엇일까? StringBuffer는 스레드에 안전하게 설계되어 있다. 즉 여러 스레드가 하나의 StringBuffer의 객체를 작업할 수 있다. 그리고 StringBuilder는 스레드에 안전하지 않으므로 단일 스레드로 작업해야한다. 정리하자면 1. String 클래스의 +연산은 짧은 문자열을 더할 때에만 사용한다. 2. StringBuffer 클래스는 스레드 작업을 하거나, static 문자열을 변경하거나, singleton 클래스에 선언된 문자열에서 작업할 때 사용한다. 3. StringBuilder 클래스는 단일 스레드로 작업할 때나, 메소드의 지역변수를 상대로 작업한다. 4. JDK 5.0 이상부터는 S.. 2024. 3. 20.
ICMP ECHO public static boolean isReachableByPing(String host) { try{ String cmd = ""; if(System.getProperty("os.name").startsWith("Windows")) { // For Windows cmd = "ping -n 1 " + host; } else { // For Linux and OSX cmd = "ping -c 1 " + host; } Process myProcess = Runtime.getRuntime().exec(cmd); myProcess.waitFor(); if(myProcess.exitValue() == 0) { return true; } else { return false; } } catch( Exception.. 2024. 3. 20.
728x90