728x90

toCharArray()

문자열을 한 글자씩 쪼개서 이를 char타입의 배열에 넣어주는 메소드.

 

  • String(문자열)을 char형 배열로 바꾼다.
  String s1 = "Hello World";
  char[] charArr = s1.toCharArray();
  • 추가로, char형 배열을 합쳐서 하나의 String(문자열)로 만들 수 있다.
  String s2 = new String(charArr);

 

 

728x90

'Java & Spring' 카테고리의 다른 글

[JAVA] indexOf() 측정 문자 위치 찾기  (0) 2022.03.01
[JAVA] isEmpty() 빈 문자열 체크  (0) 2022.02.28
[JAVA] Queue 사용법  (0) 2022.02.26
[JAVA] Stack 사용법  (0) 2022.02.25
[JAVA] print, println, printf 기초 출력문  (0) 2022.02.23
728x90

Queue

  • 먼저 들어간 자료가 먼저 나오는 구조 FIFO(First In FIrst Out) 선입선출 구조 
  • 큐는 한 쪽 끝은 프런트(front)로 정하여 삭제 연산만 수행
  • 다른 한 쪽 끝은 리어(rear)로 정하여 삽입 연산만 수행
  • 그래프의 넓이 우선 탐색(BFS)에서 사용
  • 컴퓨터 버퍼에서 주로 사용, 마구 입력이 되었으나 처리를 하지 못할 때, 버퍼(큐)를 만들어 대기 시킨다.

출처 TCP SCHOOL

 

Queue 선언

import java.util.LinkedList; //import
import java.util.Queue; //import
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언, linkedlist 이용
Queue<String> queue = new LinkedList<>(); //String형 queue 선언, linkedlist 이용

자바에서 큐는 LinkedList를 활용하여 생성해야 한다. 

 

Queue Method

메소드 설명
boolean add(E e) 해당 큐의 맨 뒤에 전달된 요소를 삽입함.
만약 삽입에 성공하면 true를 반환하고, 큐에 여유 공간이 없어 삽입에 실패하면
IllegalStateException을 발생시킴.
E element() 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.
boolean offer(E e) 해당 큐의 맨 뒤에 전달된 요소를 삽입함.
E peek() 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.
만약 큐가 비어있으면 null을 반환함.
E poll() 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환하고, 해당 요소를 큐에서 제거함.
만약 큐가 비어있으면 null을 반환함.
E remove() 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 제거함.

 

Queue 예제

Queue<Integer> stack = new LinkedList<>(); //int형 queue 선언
queue.add(1);     // queue에 값 1 추가
queue.offer(2);     // queue에 값 2 추가
queue.poll();       // queue에 첫번째 값을 반환하고 제거 비어있다면 null
queue.peek();       // queue의 첫번째 값 참조
queue.remove();     // queue에 첫번째 값 제거
queue.clear();      // queue 초기화
728x90
728x90

Stack

  • 먼저 들어간 자료가 나중에 나옴 LIFO(Last In First Out) 후입선출 구조
  • 시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때 스택 메모리의 영역에서 함 
  • 인터럽트처리, 수식의 계산, 서브루틴의 복귀 번지 저장 등에 쓰임
  • 그래프의 깊이 우선 탐색(DFS)에서 사용
  • 재귀적(Recursion) 함수를 호출 할 때 사용

출처 TCP SCHOOL

 

Stack 선언

import java.util.Stack; //import
Stack<Integer> stack = new Stack<>(); //int형 스택 선언
Stack<String> stack = new Stack<>(); //char형 스택 선언

 

Stack Method

메소드 설명
boolean empty() 해당 스택이 비어 있으면 true를, 비어 있지 않으면 false를 반환.
E peek() 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환.
E pop() 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환하고, 해당 요소를 스택에서 제거.
E push(E item) 해당 스택의 제일 상단에 전달된 요소를 삽입.
int search(Object o) 해당 스택에서 전달된 객체가 존재하는 위치의 인덱스를 반환.
이때 인덱스는 제일 상단에 있는(제일 마지막으로 저장된) 요소의 위치부터 0이 아닌 1부터 시작.

 

Stack 예제

Stack<Integer> stack = new Stack<>(); //int형 스택 선언
stack.push(1);     // stack에 값 1 추가
stack.push(2);     // stack에 값 2 추가
stack.size();      // stack의 크기 출력 : 2
stack.peek();     // stack의 가장 상단의 값 출력
stack.pop();       // stack에 값 제거
stack.clear();     // stack의 전체 값 제거 (초기화)
stack.empty();     // stack이 비어있는제 check (비어있다면 true)
stack.contains(1) // stack에 1이 있는지 check (있다면 true)

 

728x90
728x90

아스키 코드(ASCII Code)란

ASCII - ( American Standard Code for Information Interchange, 미국 정보 교환 표준 부호 )  
아스키코드는 미국 ANSI(미국 국가표준 협회)에서 표준화한 정보 교환용 7비트 부호체계. 

  • 영문 알파벳을 사용하는 대표적인 문자 인코딩.
  • 컴퓨터와 통신장비를 비롯하여 문자를 많이 사용되는 장치에 사용.
  • 대부분의 문자 인코딩이 아스키코드에 기초를 두고 있다. 
  • 영문 키보드로 입력 할수있는 모든 기호들이 할당되어 있어 어느 시스템에 적용이 가능하다는 장점. 

 

아스키 코드표(ASCII Code Table)

온라인에서 많이 참조하는 이재욱님의 아스키코드표 

 

728x90

'etc' 카테고리의 다른 글

라이엇 api 승인 완료  (0) 2022.08.17
라이엇 api 신청 방법(롤 api)  (0) 2022.08.01
JSON이란  (0) 2022.02.05
[WebServer] Nginx & Apache 비교  (0) 2022.01.27
728x90

print

괄호안 내용을 단순히 출력. 개행문자(\n) 포함안됨.

System.out.print("Hello");
System.out.print("123");
// Hello123

 

println

괄호안 내용을 출력한 후 마지막에 개행문자가 포함되어 있어 출력후 한 줄 띄워진다.

System.out.println("Hello");
System.out.println("123");
// Hello
// 123

 

printf

C에서의 printf와 동일. %d, %s 등을 쓰기위해 사용. 개행문자 포함X

int a = 3;
String b = "Hello";

System.out.printf("a = %d  %n",a);
System.out.printf("b = %s  %n",b);
// a = 3
// b = Hello

 

지시자 설명
%b boolean 형식으로 출력
%d 정수 형식으로 출력
%o 8진수 정수의 형식으로 출력
%x 또는 %X 16진수 정수의 형식으로 출력
%f 소수점 형식으로 출력
%c 문자형식으로 출력
%s 문자열 형식으로 출력
%n 줄바꿈 기능
%e 또는 %E 지수 표현식의 형식으로 출력

 

728x90

'Java & Spring' 카테고리의 다른 글

[JAVA] Queue 사용법  (0) 2022.02.26
[JAVA] Stack 사용법  (0) 2022.02.25
[JAVA] BufferedRead, BufferedWriter  (0) 2022.02.22
[JAVA] Math.max(), Math.min() 최대,최소값 구하기  (0) 2022.02.21
[JAVA] Scanner 스캐너  (0) 2022.02.20
728x90

BufferedRead

  • 입력 스트림에서 문자를 읽는 함수
  • 문자나 배열, 라인들을 효율적으로 읽기 위해 문자들을 버퍼에 저장하고 (버퍼링) 읽는 방법을 취한다
  • 버퍼 사이즈는 사용자가 지정할 수도 있지만 그렇지 않을 경우 기존 디폴트 사이즈가 사용됨

 

BufferedRead 사용법

BufferedReader 선언 후 readLine() 메소드를 이용해 데이터를 라인 단위로 읽어옴.

readLine()의 리턴 값은 String으로 고정되기에 다른 타입으로 입력을 받으려면 형 변환을 해주어야 한다.

* 예외처리 필수

BufferedReader 사용을 위해 throws IOException 이용하거나 try & catch를 활용해 예외처리를 해주어야한다.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //BufferedReader선언 
String s = br.readLine(); //String 문자열 받기 
int i = Integer.parseInt(br.readLine()); //Int

 

Read한 데이터 가공

// 방법1) StringTokenizer를 이용한다. 
StringTokenizer st = new StringTokenizer(br.readLine()); //StringTokenizer인자값에 입력 문자열 넣음 
int a = Integer.parseInt(st.nextToken()); //첫번째 호출을 to int 
int b = Integer.parseInt(st.nextToken()); //두번째 호출을 to int 

// 방법2) string을 한번에 받아서 split을 이용해 배열로 변환 
String s = br.readLine(); 
String array[] = s.split(" "); //공백마다 데이터 끊어서 배열에 넣음

 

BufferedWriter

  • 한번에 모았다가 출력이 가능하다
  • 버퍼를 정의해줬기 때문에 반드시 flush()/close()를 호출해 뒤처리를 해줘야한다
  • System.out.println() 처럼 자동개행 기능이 없기 때문에 개행이 필요한 경우 \n 을 통해 따로 처리해 주어야한다.

 

BufferedWriter 사용법

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));//선언
String s = "abcdefg";//출력할 문자열
bw.write(s);//출력
bw.newLine(); //줄바꿈
bw.flush();//남아있는 데이터를 모두 출력시킴
bw.close();//스트림을 닫음

bw.newLine()이 줄바꿈이지만 적용이 안될때가 있어 bw.write(s +"\n")을 사용한다.

 

주요 Method

메서드명   기능
 BufferedReader(Reader rd)  rd에 연결되는 문자입력 버퍼스트림 생성
 BufferedWriter(Writer wt)   wt에 연결되는 문자출력 버퍼스트림 생성​
 int read()  스트림으로부터 한 문자를 읽어서 int 형으로 리턴
 int read(char[] buf)  문자배열 buf의 크기만큼 문자를 읽어들임.  읽어들인 문자 수를 리턴
 int read(char[] buf, int offset, int length)  buf의 offset위치에서부터 length 길이만큼 문자를 스트림으로부터 읽어들임​
 String readLine()  스트림으로부터 한 줄을 읽어 문자열로 리턴​​
 void mark()   현재우치를 마킹, 차 후 reset() 을 이용하여 마킹위치부터 시작함
 void reset()   마킹이 있으면 그 위치에서부터 다시시각, 그렇지 않으면 처음부터 다시시작
 long skip(int n)  n 개의 문자를 건너 뜀
 void close()  스트림 닫음
 void write(int c)  int 형으로 문자 데이터를 출력문자스트림으로 출력
 void write(String s, int offset, int length)  문자열 s를 offset 위치부터 length 길이만큼을 출력스트림으로 출력
 void write(char[] buf, int offset, int length)  문자배열 buf의 offset 위치부터 length 길이만큼을 출력스트림으로 출력​​​
 void newLine()  줄바꿈 문자열 출력
 void flush()   남아있는 데이터를 모두 출력시킴.

 

728x90
728x90

Math.max()

  • static int max(int a , int b)
  • static double max(double a , double b)
  • static float max(float a , float b)
  • static long max(long a , long b)
  • max() 함수는 두 인자 값 중 큰 값을 리턴하는 함수이다.
Math.max(a, b)

 

Math.max() 예제

public class Main{ 
    public static void main(String[] args){ 
    
    System.out.println( Math.max(33, 3) ); // 33 
    System.out.println( Math.max(3.14, 1.5) ); // 3.14
    
    } 
}

 

Math.min()

  • static int min(int a , int b)
  • static double min(double a , double b)
  • static float min(float a , float b)
  • static long min(long a , long b)
  • min() 함수는 두 인자 값 중 작은 값을 리턴하는 함수이다.
Math.min(a, b);

 

Math.min() 예제

public class Main{ 
    public static void main(String[] args){ 
    
    System.out.println( Math.min(33, 3) ); // 3
    System.out.println( Math.min(3.14, 1.5) ); // 1.5
    
    } 
}
728x90
728x90

Scanner

  • 읽은 바이트를 문자, 정수, 실수, 불린, 문자열 등 다양한 타입으로 변환하여 리턴하는 클래스
  • java.util.Scanner
  • Scanner는 입력되는 키 값을 공백으로 구분되는 토큰 단위로 읽는다.
  • 공백 문자 : ' \t ',' \f ',' \r ',' ',' \n '
  • 개발자가 원하는 타입 값으로 쉽게 읽을 수 있다.
  • 프로그램을 실행시키고 콘솔창에 문자열을 입력하고 'Enter'를 누르면 된다.

 

Scanner 사용법

import java.util.Scanner; //기본적으로 import 문 필요 

Scanner scan = new Scanner(System.in); // Scanner 객체

 

Scanner 메소드

메소드  설명 
 String next()   다음 토큰을 문자열로 리턴 
 byte nextByte()  다음 토큰을 byte 타입으로 리턴 
 short nextShort()   다음 토큰을 short 타입으로 리턴 
 int nextInt()   다음 토큰을 int 타입으로 리턴
 long nextLong()   다음 토큰을 long 타입으로 리턴 
 float nextFloat()   다음 토큰을 float 타입으로 리턴 
 double nextDouble()   다음 토큰을 double 타입으로 리턴 
 String nextLine()   ' \n '을 포함하는 한 라인을 읽고 ' \n '을 버린 나머지만 리턴 
 boolean hasNext()   현재 입력된 토큰이 있으면 true, 아니면 새로운 입력이 들어올 때까지 무한정 기다려서, 새로운 입력이 들어오면 그 때 true 리턴. ctrl + z 키가 입력되면 입력 끝이므로 false 리턴 
 void close()   Scanner의 사용 종료 

 

Scanner 예제

import java.util.*;
 
public class Main {
 
    public static void main(String[] args) {
        
        Scanner scan = new Scanner(System.in);
        
        System.out.println("나이를 입력해 주세요.");
        int age = scan.nextInt(); //정수형만 받는 메소드
        
        System.out.println(age);        
 
    }
 
}

 

728x90

+ Recent posts