배열이란 동일한 자료형으로 선언된 데이터 공간을 메모리 상에 연속적으로 나열하여 데이터 관리의 효율성을 높이는 것입니다. 변수는 한개의 데이터만 저장할 수 있습니다. 따라서 저장해야 할 데이터의 수가 많아지면 그만큼 많은 양의 변수를 선언해줘야하는 비효율성이 발생하죠. 그렇기에 좀 더 효율적인 방법이 필요한데 이것이 배열입니다. 배열은 같은 타입의 데이터를 연속된 공간에 나열시키고 각 데이터에 인덱스(index)를 부여해 놓은 자료구조입니다. 여러가지 배열 선언 //int 타입 배열 선언 int[] i_array; int i_array[]; //배열 생성후 초기화하면 배열의 주소가 할당된다. int[] i_array = new int[8]; //초기값 0 String[] s_array = new Stri..
BufferedReader/BufferedWriter는 Buffer에 있는 IO 클래스입니다. 입력된 데이터가 바로 전달되지 않고 중간에 버퍼링이 된 후에 전달되됩니다. 출력도 마찬가지로 버퍼를 거쳐서 간접적으로 출력장치로 전달되기에 시스템의 데이터처리 효율성을 높여주며 버퍼스트림을InputStreamReader / OutputStreamWriter를 같이 사용하여 버퍼링을 하게 되면 입출력 스트림으로부터 미리 버퍼에 데이터를 갖다 놓기 때문에 보다 효율적인 입출력이 가능합니다. BufferedReader Java를 처음 접하시는 분들이 주로 받는 입력방식은 Scanner입니다. Scanner를 통해 입력을 받을경우 Space Enter를 모두 경계로 인식하기에 입력받은 데이터를 가공하기 매우 편리합니다..
이번 포스팅에서는 자바에서 긴 소수를 반올림하여 n번째 자리까지 나타내는 방법에 대해 알아보겠습니다. 여러가지 방법이 있겠습니다만 Math.round();함수를 활용하거나 String.format(); 함수를 활용하는것이 대표적인 방식입니다. Math.round() Math함수의 round()함수는 실수의 소수점 첫번째 자리를 반올림하여 정수로 리턴시켜줍니다. 하지만 이 메서드를 잘 활용하면 소수점 몇번째 자리까지 나타내는것도 가능합니다. 예를들어 33.777*100을 하면 3377.7가 되겠죠. 여기서 round를 적용시키면 3378이라는 정수가 리턴될것입니다. 여기서 다시 100.0을 나눠주면 실수로 적용되어 나옵니다. (33.78이 나오게 됩니다.) 소수점 둘째 자리까지 나타내고싶으시면 100.0을..
저는 문자열을 자를때 Split 함수를 즐겨쓰는데요. 오늘 몰랐던 사실 하나를 발견해서 포스팅합니다. 바로 Split함수에서 \n 개행단위로 문자열을 자르는 방법인데요. 당연히 문자열.split("\n");이렇게 하면 될줄 알았는데 안먹히더라구요. 알고보니 split함수에서 개행단위로 문자열을 끊으려면 문자열.split("\\n"); 이렇게 써주셔야 컴퓨터가 인식한다고 합니다. Split \n 개행단위로 문자열 자르기 예제 public class split_ex { public static void main(String[] args) { String target ="동해물과 백두산이 \n마르고 닳도록\n하나님이 보우하사 우리나라만세\n"; String[] change_target = target.spli..
문자열에있는 숫자를 계산하고 싶은경우, 스트링변수에 Int값을 넣고싶은경우등등 코딩을 하다보면 어떤 변수형을 다른 형으로 강제 치환해야 할 경우가 많습니다. 이번글에서는 자바의 형변환에 대해 포스팅하겠습니다. 문자 -> 숫자 1. String to Int 가장 많이 사용한다고 생각됩c니다. 자바 Integer클래스의 parseInt함수와 valueOf 함수로 변환 시켜줄 수 있습니다. --Integer.paseInt(String값) --Integer.valueOf(String값) String s_num = "10"; int i_num = Integer.parseInt(s_num); --String -> Int 1번방식 int i_num2 = Integer.valueOf(s_num); --String ->..
프로그래밍을 하다 보면 예상치 못한 경로로 문자열에 공백이 들어오는 경우가 종종 발생합니다. 이럴 경우 공백이 어디서부터 들어왔는지 소스가 길어질수록 찾아보기엔 굉장히 귀찮죠. 이럴 경우 그냥 공백이 들어온 스트링 값을 그냥 제거해주는 방식으로 프로그래밍을 진행할 수도 있습니다. 이럴 때 유용하게 사용하는 함수가 Trim이라는 함수입니다. Trim 문자열을 입력받거나 문자열을 합칠경우 가끔 쓸데없는 공백이 따라 들어오곤 합니다. 그럴 때 유용하게 사용되는 Trim함수입니다. 사용법도 매우 간단합니다. 사용법 String str = " 문자열에 공백이 있습니다. "; System.out.println(str); str = str.trim(); System.out.println(str); 그냥 문자열.tri..
String변수나 배열 같은 곳에 많은 양의 데이터들이 들어가 있을 경우 자신이 바꾸고자 하는 값만 골라서 바꾸기란 쉽지 않습니다. 이럴 때 유용하게 쓰일 수 있는 함수가 바로 Replace함수입니다. 이번 포스팅에서는 문자열 치환 함수 Replace, ReplaceAll, ReplaceFirst 함수의 사용법에 대해서 알아보겠습니다. Replace String a = "무궁화 삼천리 화려강산 대한사람 대한으로 길이 보전하세 "; //replace([기존문자],[바꿀문자]) a= a.replace("대한", "민국"); System.out.println(a); //결과값 : 무궁화 삼천리 화려강산 민국사람 민국으로 길이 보전하세 String replace(CharSequnce target, CharSeq..
자바에서는 문자열을 붙이는 방법이 여러 가지 있습니다. String a = "첫번째 텍스트입니다. "; String b = "두번째 텍스트입니다. "; System.out.println(a+b); //결과값 : 첫번째 텍스트입니다. 두번째 텍스트입니다. 대부분 이런식으로 문자열에다가 + 를 시키는 방법으로 문자열을 합치지만 이번 포스팅에서는 자바 String클래스의 문자열 붙이기 함수인 Concat과 Append 함수를 활용하여 문자열을 붙이는 방법에 대해 알아보도록 하겠습니다. Concat Concat과 +연산자는 같은 문자열을 합치는 기능을 합니다. 하지만 동작하는 방식이 다른데요. Concat은 합친 문자열을 String으로 생성해줍니다. 하지만 + 연산자는 문자열을 먼저 StringBuilder로..
자바 스트링 클래스에는 사용하기 편리하도록 만들어놓은 여러 가지 함수가 있습니다. 이번 포스팅에서는 그 함수들 중 문자열 자르기에 관련된 함수들을 한번 알아보도록 하겠습니다. SubString 문자열 자르기 하면 가장 먼저 생각나는 함수입니다. 문자열 함수에 익숙해지시면 SubString함수와 다른 함수들을 섞어서 정말 다양하게 활용할 수 있는데요. 사용법에 대해 한번 알아보도록 하겠습니다. 활용 예제로는 마지막 3글자 자르기, 특정 문자 이후의 문자열 자르기, 특정(단어) 부분만 자르기를 준비했습니다. 우선 문자열을 자르기에 앞서 문자열이 어떻게 배치되어있는지 Index값부터 살펴야 문자열을 자를 수 있습니다. String 클래스 자체가 char을 여러 개 붙여놓은 효과를 주기 때문에 String 클래..
자바를 공부하다 보면 자연스레 알고리즘 문제도 풀게 되는데요. 알고리즘 문제에 단골손님으로 등장하는 것이 바로 두 숫자의 최대공약수와 최소공배수를 구하는 문제가 꼭 있습니다. 이번 포스팅에서는 두 수의 최대공약수와 최소공배수를 구하는 방법에 대해서 알아보도록 하겠습니다. 예제는 두 개의 숫자를 입력받아서 두 개의 숫자의 최대공약수와 최소공배수를 구하는 알고리즘을 준비했습니다. 최대공약수와 최소공배수 구하기 첫번째 방식 import java.util.Arrays; import java.util.Scanner; class TryHelloWorld { public int[] gcdlcm(int a, int b) { int[] answer = new int[2]; int temp=1; int gcd=a*b; w..
아스키코드 미국에서 표준화가 추진된 정보교환용 7bit 부호로 정의합니다. 1962년 안시(ANSI)가 정의한 미국 표준 정보교환 코드이며 1963년 미국표준협회(ASA)에 의해 결정되어 미국의 표준 부호가 되었습니다. 이 코드는 7비트의 이진수 조합으로 만들어져 총 128개의 부호를 표현합니다. 아스키코드의 처음 32개(0~31)는 프린터나 전송 제어용으로 사용되고 나머지는 숫자와 로마 글자 및 도량형 기호와 문장 기호를 나타냅니다. 아스키코드는 7자리의 2진 코드인데 1비트의 패리티 비트를 추가하여 8비트로 많은 컴퓨터에 사용되고 있습니다. 아스키코드 표 유니코드 시간이 지나가면서 영어나 숫자 그리고 기본적인 기호뿐만 아니라 그 나라, 그 언어에서 쓰는 다양한 문자들을 처리하려면 1바이트로 정의된 아..
스트링 값에 있는 문자를 좀 더 세밀하게 활용하기 위하여 스트링에 담겨있는 값을 배열에 저장하고 싶을 때가 가끔 있습니다. (ex : 가운데 글자만 출력하기, 글자 뒤집기) 이번 포스팅에서는 스트링에 담겨 있는 값을 한 글자씩 끊어서 배열에 저장하는 방법에 대해 알아봅니다. String값 한글자씩 배열에 저장하기 Split 함수를 활용하여 단어를 String배열에 한 글자씩 저장하기 String word = "POWER"; //스트링 문자 POWER String[] array_word; // 스트링을 담을 배열 //사실상 가장 간단함 array_word = word.split(""); //배열에 한글자씩 저장하기 for(int i=0;i
옛날에 공부했던 소스들을 정리하면서 발견한 별찍기 소스입니다. 자바 공부를 처음할때 열심히 밤새면서 돌리던게 기억나네요 ㅎㅎㅎ 혹시나 참고하실분 계실까 싶어 올립니다. FOR문 연습에는 별찍기가 최고~ 별찍기 Java 1. 간단한 2차원 배열 별찍기입니다. for(int i=0;i