-
Q1. 입력 숫자의 합 (콘솔입출력 scanner , sc.nextInt()이용)
import java.util.Scanner; public class Sample{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); Scanner sc2 = new Scanner(System.in); System.out.println(sc.nextInt() + sc2.nextInt()); } }
import java.util.Scanner; public class Sample{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); Scanner sc2 = new Scanner(System.in); int value1 = sc.nextInt(); int value2 = sc.nextInt(); int result = value1 + value2; System.out.println(result); } }
Q2 대문자로 변경하기 (콘솔입출력 scanner, sc.nextLine() 엔터칠떄까지 그문자열을 입력받음)
영문을 입력하고 엔터를 입력하면 입력한 영문을 대문자로 변경하여 출력하는 프로그램을 작성하시오 ( 단 사용자가 END라는 문자열을 입력하기 전까지 반복해서 문장을 입력받을 수 있게 하시오)
- toUpperCase()메소드는 문자열 영문을 대문자로 변경한다.
- while(true)로 무한루프를 돌리고 END를 입력하는 경우만 반복문을 빠져나가게 설계한다.
import java.util.Scanner; public class Sample{ public static void main(String[] args) { while(true){ Scanner sc = new Scanner(System.in); System.out.println("영어 문장을 입력하세요"); String line = sc.nextLine(); if ("END".equals(line)) { break; }else{ System.out.println(line.toUpperCase()); } } } }
Q3. 다음 예는 파일 입출력 예시이다. sample.txt라는 파일에 문자열을 저장한 후 다시 그 파일을 읽어서 출력한 프로그램이다.
import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; public class Sample{ public static void main(String[] args) { FileWriter fw = new FileWriter("sample.txt"); fw.write("Write once, run anywhere"); BufferedReader br = new BufferedReader(new FileReader("sample.txt")); String line = br.readLine(); System.out.println(line); } }
다음과 같이 코드를 짜면 우리가 예상한 Write once, run anywhere가 출력되는것이 아닌 null이 출력된다.
그이유는 파일 읽기와 쓰기를 한 후 파일을 닫아주지 않았기 때문이다. 아래와 같이 파일 읽기쓰기 후엔 꼭 닫아주어야한다.
import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; public class Sample{ public static void main(String[] args) { FileWriter fw = new FileWriter("sample.txt"); fw.write("Write once, run anywhere"); fw.close(); BufferedReader br = new BufferedReader(new FileReader("sample.txt")); String line = br.readLine(); System.out.println(line); br.close(); } }
Q4. 사용자의 입력을 파일에 저장하기
사용자의 입력을 파일에 저장하는 프로그램을 작성해보자. (단 프로그램을 다시 실행하더라도 기존에 작성한 내용을 유지하고 새로 입력한 내용을 추가해야한다.)
- 파일 쓰기에서 줄바꿈문자를 추가할필요없는 printerwriter를 사용한다.
- 이미작성된내용에 추가하고 싶다면 추가모드로 열어 추가내용을 작성한다. 어떻게? append에 true를
- PrintWriter의 두번째 파라미터에 ture를 전달하면 파일의 내용이 초기화되지 않고 이어서 쓰여진다.
import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.Scanner; public class Sample{ public static void main(String[] args) throws IOException { PrintWriter pw = new PrintWriter(new FileWriter("/Users/leezoo/projects/jump2java/out.txt",true)); Scanner sc1 = new Scanner(System.in); String line = sc1.nextLine(); pw.write(line); pw.close(); } }
Q5 파일 내용 바꾸어 저장하기
replaceAll 함수를 이용해서 파일 내용을 바꾸어 저장해봅시다.
replaceAll사용법
String a = "Hello Java"; System.out.println(a.replaceAll("Java","World"); // Hello World 출력
이예제선 리스트만들기, 파일입출력, 리스트를 문자열로 만들기, 문자열 내용 교체 등 다양한 문법이 쓰인다.
1. 파일을 읽어서 줄 단위로 리스트 변수 a에 하나씩 저장하는것
2. 리스트 데이터를 다시 문자열로 만들어주는것 (줄바꿈 문자를 포함해서) ->String.join사용
import java.io.*; import java.util.ArrayList; public class Sample{ public static void main(String[] args) throws IOException { ArrayList<String> a = new ArrayList<>(); //문자열을 하나씩 저장할 리스트 생성 BufferedReader br = new BufferedReader(new FileReader("/Users/leezoo/projects/jump2java/out.txt")); //파일 읽기 겍체생성 while (true) { String line = br.readLine(); //한줄씩 읽는다 if(line == null)break; //만약 더 읽어들일 정보가 없으면 반복문을 빠져나가고 a.add(line); //읽어들일 정보가 있으면 읽어들인 정보를 리스트에 인덱싱한다. } System.out.println(a); //a = [Life is too short, you need python] br.close(); String text = String.join("\n", a); //문자열 리스트를 ("\n") 로 이어붙여준다 System.out.println(text); // text = Life is too short // you need python text = text.replaceAll("python", "java"); //파일쓰기 FileWriter fw = new FileWriter("/Users/leezoo/projects/jump2java/out.txt"); fw.write(text); fw.close(); } }
2023.01.12 - [점프 투 자바] - [점프 투 자바 3장] 자료형과 형변환
[점프 투 자바 3장] 자료형과 형변환
3-1 숫자 자료형 정수 자바의 정수를 표현하기 위한 자료형은 int , long int age = 10; long countOfStar = 87984751321246845L; /*long변수에 값을 대입할때는 숫자 값이 int자료형의 최대값인 2147483647보다 큰 경우
lee-ding.tistory.com
점프 투 자바
**초보 프로그래머를 위한 자바 입문서** 이 책은 문법위주의 지식보다는 이해중심의 지식을 전달하는 것을 주 목적으로 한다. 예를 들어 자바에서 잘 파악하기 힘든 개념 중 …
wikidocs.net
'java' 카테고리의 다른 글
ClassCastException (0) 2023.01.31 String.join (0) 2023.01.27 5장 연습문제 (1) 2023.01.25 4장 연습문제 (0) 2023.01.22 [java] 함수형 프로그래밍 (람다, 스트림) (0) 2023.01.20