전체 글669 자바 숫자의 자릿수를 판별하는 5가지 방식 숫자의 자릿수를 판별하는 5가지 방식에 대해 살펴본다. 1. 나머지 연산과 반복문을 이용한 방식 public static int calculate(int number){ int count=0; while (number>0){ number /= 10; count++; } return count; } 동작 원리 주어진 숫자를 10으로 나눈 나머지를 계산한다. 나머지 연산을 통해 숫자의 가장 오른쪽 자릿수를 구하고, 해당 자릿수를 버린 숫자를 얻는다. 버린 숫자가 0보다 큰 경우, 자릿수를 하나 증가시키고 1단계로 돌아간다. 버린 숫자가 0인 경우, 반복문을 종료하고 자릿수를 반환한다. 예를 들어, 숫자 1234를 처리하는 경우 1234를 10으로 나누고 몫인 123을 얻는다. 그리고 자릿수를 하나 증가시키고.. 2023. 6. 21. 자바 문자열 역순 뒤집기 4가지 방법 문자열을 뒤집는 4가지 방법에 대해 소개한다. 결과적으로StringBuilder를 사용해 문자열을 조작하는 일이 대부분이겠지만 그래도 밑단의 알고리즘이 돌아가는 원리를 이해해보는 취지에서 여러 가지 방법을 생각해보았다. 1. 단순 반복문 이용 단순 반복문을 이용하여 뒤에서부터 탐색하고 하나씩 새로운 String으로 만든다. 다음 메서드는 하나의 매개변수 word를 받으며, 이를 뒤집어 리턴한다. public static String reverse(String word) { StringBuilder stringBuilder = new StringBuilder(); for (int i = word.length() - 1; i >= 0; i--) { stringBuilder.append(word.charAt(.. 2023. 6. 21. StringBuilder와 String 클래스의 문자열 만드는 효율 차이 Java 문자열 연결 Java에서 문자열을 연결하는 방식으로 3가지 방법을 사용할 수 있다. - String을 "+" 연산자로 연결하기 - StringBuffer 클래스의 append() 메서드를 이용하기 - StringBuilder 클래스의 append() 메서드를 이용하기 각각의 방법은 다음과 같다. 1. String을 "+" 연산자로 연결하기 final String testWord = "hello"; String string = new String(); string += testWord; 2. StringBuffer 클래스의 append() 메서드를 이용하기 StringBuffer stringBuffer = new StringBuffer(); final String testWord = "hello".. 2023. 6. 21. 자바 함수형 프로그래밍과 디자인 패턴 디자인 패턴 - 반복해서 등장하는 프로그래밍 문제들에 대한 해법들을 패턴화 해놓은 것 - 패턴들을 숙지해놓으면 비슷한 문제가 생겼을 때 패턴들이 이정표가 되어준다. - 생성 패턴 : 오브젝트의 생성에 관한 패턴 - 구조 패턴: 상속을 이용해 클래스/오브젝트를 조합하여 더 발전된 구조로 만드는 패턴 - 행동 패턴: 필요한 작업을 여러 객체에 분배하여 객체간 결합도를 낮추는 패턴 Builder Pattern - 대표적인 생성 패턴 - 객체의 생성에 대한 로직과 표현에 대한 로직을 분리해준다 - 객체의 생성 과정을 유연하게 해준다 - 객체의 생성 과정을 정의하고 싶거나 필드가 많아 constructor가 복잡해질 때 유용 다음과 같은 field를 가진 User를 만든다고 해보자. private int id; .. 2023. 6. 21. 자바 함수형 프로그래밍 Scope, Closure&Curry, Lazy Evaluation, Function Composition Scope - Closure & Curry - 유효볌위, 즉 변수에 접근할 수 있는 범위를 의미한다. - 블럭 밖과 안 => 변수 사용의 바운더리 - 마찬가지로 람다에서도 이와 같은 원리가 적용된다. - 함수 안에 함수가 있을 때 내부 함수에서 외부 함수에 있는 변수에 접근이 가능하다(Lexical scope). 그 반대는 불가능하다. 예를 들어 lexical scope public static Supplier getStringSupplier() { String hello = "hello"; Supplier supplier = () -> { Stirng world = "world" return hello + world; }; return supplier; } 이때 hello는 supplier 안에서도 접.. 2023. 6. 20. 이전 1 ··· 55 56 57 58 59 60 61 ··· 134 다음