JavaRush /Java Blog /Random-KO /Java의 I/O 스트림 및 문자열
articles
레벨 15

Java의 I/O 스트림 및 문자열

Random-KO 그룹에 게시되었습니다
Java 패키지 라이브러리의 클래스는 데이터를 입력하는 데 사용됩니다 Scanner. Java의 I/O 스트림 및 문자열 - 1이 클래스는 사용할 프로그램에서 가져와야 합니다. 이는 프로그램 코드에서 공개 클래스가 시작되기 전에 수행됩니다. 클래스에는 표준 입력 스트림에서 특정 유형의 다음 문자를 읽고 해당 문자의 존재를 확인하는 메소드가 있습니다. 입력 스트림으로 작업하려면 Scanner 클래스의 개체를 생성하고 생성 중에 연결할 입력 스트림을 지정해야 합니다. Java의 표준 입력 스트림(키보드)은 객체로 표시됩니다 System.in. 그리고 표준 출력 스트림(디스플레이)은 이미 여러분에게 친숙한 객체입니다 System.out. 오류 출력을 위한 표준 스트림도 있지만 System.err이를 사용하여 작업하는 것은 우리 과정의 범위를 벗어납니다.
import java.util.Scanner; // импортируем класс
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // создаём an object класса Scanner
        int i = 2;
        System.out.print("Введите целое число: ");
        if(sc.hasNextInt()) { // возвращает истину если с потока ввода можно считать целое число
          i = sc.nextInt(); // считывает целое число с потока ввода и сохраняем в переменную
          System.out.println(i*2);
        } else {
          System.out.println("Вы ввели не целое число");
        }
    }
}
hasNextDouble()클래스의 객체에 적용된 메소드는 Scanner입력 스트림에서 실수형을 읽을 수 있는지 확인 double하고 nextDouble()이를 읽는다. 먼저 확인하지 않고 값을 읽으려고 하면 프로그램 실행 중에 오류가 발생할 수 있습니다(디버거는 이러한 오류를 미리 감지하지 못합니다). 예를 들어 아래 프로그램에 실수를 입력해 보세요.
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double  i = sc.nextDouble(); // если ввести букву s, то случится ошибка во время исполнения
        System.out.println(i/3);
    }
}
nextLine()전체 문자 시퀀스를 읽을 수 있는 방법도 있습니다 . 이는 이 메소드를 통해 얻은 값이 클래스 object 에 저장되어야 함을 의미합니다 String. 다음 예에서는 이러한 개체 두 개가 생성된 다음 사용자 입력이 하나씩 해당 개체에 기록되고 입력된 문자 시퀀스를 결합하여 얻은 하나의 문자열이 화면에 표시됩니다.
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s1, s2;
        s1 = sc.nextLine();
        s2 = sc.nextLine();
        System.out.println(s1 + s2);
    }
}
hasNext()입력 스트림에 문자가 남아 있는지 확인하는 방법도 있습니다 . 클래스에는 String문자열에 적용할 수 있는 유용한 메서드가 많이 있습니다(메서드 이름 앞에는 반환되는 값의 유형이 표시됩니다).
  1. int length()— 문자열의 길이(문자 수)를 반환합니다.
  2. boolean isEmpty()— 문자열이 비어 있는지 확인합니다.
  3. String replace(a, b)— 문자 a(문자 또는 char 유형의 변수)가 문자 b로 대체된 문자열을 반환합니다.
  4. String toLowerCase()— 원래 문자열의 모든 문자가 소문자로 변환된 문자열을 반환합니다.
  5. String toUpperCase()— 원래 문자열의 모든 문자가 대문자로 변환된 문자열을 반환합니다.
  6. boolean equals(s)— 메소드가 적용되는 문자열이 메소드 인수에 지정된 문자열 s와 일치하면 true를 반환합니다( ==다른 객체와 마찬가지로 문자열 연산자를 사용하여 비교할 수 없음).
  7. int indexOf(ch)— 문자열에서 문자 ch의 인덱스를 반환합니다(인덱스는 문자의 서수이지만 문자의 번호는 0부터 시작됩니다). 문자가 전혀 발견되지 않으면 -1을 반환합니다. 문자열에 문자가 두 번 이상 나타나면 처음 나타나는 인덱스를 반환합니다.
  8. int lastIndexOf(ch)- 이전 방법과 유사하지만 기호가 한 줄에 여러 번 나타나는 경우 마지막으로 나타나는 인덱스를 반환합니다.
  9. int indexOf(ch,n)— 문자열에서 문자 ch의 인덱스를 반환하지만 인덱스 n부터 검사를 시작합니다(인덱스는 문자의 서수이지만 문자의 번호는 0부터 시작됩니다).
  10. char charAt(n)— 인덱스 n 아래 줄에 있는 문자의 코드를 반환합니다(인덱스는 문자의 일련 번호이지만 문자의 번호는 0부터 시작됩니다).
public class Main {
    public static void main(String[] args) {
        String s1 = "firefox";
        System.out.println(s1.toUpperCase()); // выведет «FIREFOX»
        String s2 = s1.replace('o', 'a');
        System.out.println(s2); // выведет «firefax»
        System.out.println(s2.charAt(1)); // выведет «i»
        int i;
        i = s1.length();
        System.out.println(i); // выведет 7
        i = s1.indexOf('f');
        System.out.println(i); // выведет 0
        i = s1.indexOf('r');
        System.out.println(i); // выведет 2
        i = s1.lastIndexOf('f');
        System.out.println(i); // выведет 4
        i = s1.indexOf('t');
        System.out.println(i); // выведет -1
        i = s1.indexOf('r',3);
        System.out.println(i); // выведет -1
    }
}
사용자가 키보드에서 입력한 줄에 있는 모든 공백의 색인을 표시하는 프로그램의 예:
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        for(int i=0; i < s.length(); i++) {
            if(s.charAt(i) == ' ') {
                System.out.println(i);
            }
        }
    }
}
소스 링크: Java의 I/O 스트림 및 문자열
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION