JavaRush /Blogue Java /Random-PT /Fluxos e strings de E/S em Java
articles
Nível 15

Fluxos e strings de E/S em Java

Publicado no grupo Random-PT
Uma classe da biblioteca de pacotes Java é usada para inserir dados Scanner. Fluxos e strings de E/S em Java - 1Esta classe deve ser importada no programa onde será utilizada. Isso é feito antes do início da classe pública no código do programa. A classe possui métodos para ler o próximo caractere de um determinado tipo do fluxo de entrada padrão, bem como para verificar a existência de tal caractere. Para trabalhar com um fluxo de entrada, você precisa criar um objeto da classe Scanner , especificando durante a criação a qual fluxo de entrada ele será associado. O fluxo de entrada padrão (teclado) em Java é representado por um objeto - System.in. E o fluxo de saída padrão (display) é um objeto que você já conhece System.out. Há também um fluxo padrão para saída de erros - System.err, mas trabalhar com ele está além do escopo do nosso curso.
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("Вы ввели не целое число");
        }
    }
}
O método hasNextDouble()aplicado a um objeto da classe Scannerverifica se um número real do tipo pode ser lido no fluxo de entrada doublee o método nextDouble()o lê. Se você tentar ler um valor sem primeiro verificá-lo, poderá obter um erro durante a execução do programa (o depurador não detectará esse erro antecipadamente). Por exemplo, tente inserir um número real no programa abaixo:
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);
    }
}
Existe também um método nextLine()que permite ler uma sequência inteira de caracteres, ou seja, string, o que significa que o valor obtido por meio deste método deve ser armazenado em um objeto de classe String. No exemplo a seguir, dois desses objetos são criados, a entrada do usuário é gravada neles um por um e, em seguida, uma string é exibida na tela, obtida pela combinação das sequências de caracteres inseridas.
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);
    }
}
Também existe um método hasNext()que verifica se ainda há caracteres no fluxo de entrada. A classe Stringpossui muitos métodos úteis que podem ser aplicados a strings (antes do nome do método indicaremos o tipo do valor que ele retorna):
  1. int length()— retorna o comprimento da string (o número de caracteres nela);
  2. boolean isEmpty()— verifica se a string está vazia;
  3. String replace(a, b)— retorna uma string onde o caractere a (literal ou variável do tipo char) é substituído pelo caractere b;
  4. String toLowerCase()— retorna uma string onde todos os caracteres da string original são convertidos em letras minúsculas;
  5. String toUpperCase()— retorna uma string onde todos os caracteres da string original são convertidos em letras maiúsculas;
  6. boolean equals(s)— retorna verdadeiro se a string à qual o método é aplicado corresponder à string s especificada no argumento do método (você não pode comparar usando o ==operador string, como qualquer outro objeto);
  7. int indexOf(ch)— retorna o índice do caractere ch em uma string (o índice é o número ordinal do caractere, mas os caracteres são numerados começando do zero). Se o caractere não for encontrado, ele retornará -1. Se um caractere aparecer mais de uma vez em uma string, ele retornará o índice de sua primeira ocorrência.
  8. int lastIndexOf(ch)- semelhante ao método anterior, mas retorna o índice da última ocorrência se o símbolo aparecer diversas vezes na linha.
  9. int indexOf(ch,n)— retorna o índice do caractere ch na string, mas inicia a verificação a partir do índice n (o índice é o número ordinal do caractere, mas os caracteres são numerados a partir de zero).
  10. char charAt(n)— retorna o código do caractere localizado na linha abaixo do índice n (o índice é o número de série do caractere, mas os caracteres são numerados começando do zero).
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
    }
}
Um exemplo de programa que exibirá os índices de todos os espaços em uma linha inserida pelo usuário no teclado:
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);
            }
        }
    }
}
Link para a fonte: fluxos de E/S e strings em Java
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION