Rumah  >  Artikel  >  Java  >  Mari kita bincangkan tentang input dan output jenis data biasa di Java

Mari kita bincangkan tentang input dan output jenis data biasa di Java

WBOY
WBOYke hadapan
2022-03-24 18:59:482301semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang java, yang terutamanya memperkenalkan isu berkaitan input dan output bagi jenis data biasa. Mari kita lihat cara menyelesaikan masalah ini melalui contoh input dan output jenis data yang biasa digunakan saya harap ia akan membantu semua orang.

Mari kita bincangkan tentang input dan output jenis data biasa di Java

Pembelajaran yang disyorkan: "tutorial java"

Selepas mempelajari bahasa C dan bertukar ke Java, perkara pertama yang saya rasa ialah Java Kaedah penulisan adalah sangat rumit, dan pada masa yang sama, input dan output jenis data yang biasa digunakan tidak semudah bahasa C. Dalam bahasa C, menggunakan fungsi scanf boleh memasukkan kebanyakan format dengan mudah, tetapi tidak dalam Java Tiada pernyataan yang serupa dengan scanf dalam Java.

Artikel ini menggabungkan tabiat input dan output saya serta rekod membuat soalan untuk membuat ringkasan jenis berbeza ini, seperti integer, integer tetapi parameter yang dipisahkan... Dalam arahan berikut, kelas utama adalah semua kelas Utama, dan kami menggunakan Pengimbas untuk input. Setiap input atau output mungkin mempunyai pelbagai kaedah, saya hanya menulis dengan cara yang lebih mudah.

1. Jenis aksara

Jenis aksara yang disebut di sini merujuk kepada kes di mana hanya satu aksara dimasukkan.

1.1 Format input:

import <span style="background-color:#ed7976;">java.io.IOException</span>;//导入包

public class Main {<!-- -->

    public static void main(String[] args) <span style="background-color:#ed7976;">throws</span> <span style="background-color:#ed7976;">IOException</span> {<!-- -->IOException

{

        <strong><span style="color:#0d0016;">char</span></strong> ch = ( char)System.in.read();//<1>

         System.out.println(( int )ch); Nota: perlu digunakan dengan iOException. Dalam <1>, System.in input daripada aliran input standard (kebiasaannya papan kekunci), dan kaedah rand() membaca kandungan input daripada strim ini. Hasil input <1> adalah daripada jenis int dan perlu dihantar ke jenis char.

    1.2 Contoh}

}

2 >

1.1 Input format int ringkas:

Ini merujuk kepada situasi di mana setiap baris hanya mempunyai satu input format int. Sebagai contoh, hanya satu jenis integer dimasukkan dalam setiap baris.

import java.util.Scanner;

kelas awam Utama {

public static void main(String[] args) {

🎜 >       Imbasan pengimbas = Pengimbas baharu(System.in);

        int num = scan.nextInt();

        System.out.println(num);

  }
}

1.2 Contoh

Nota: Ia perlu Nombor Panjang, jika tidak, apabila nombor sangat besar, hasilnya akan menjadi tidak tepat.






2.1 Input dalam format int dengan ruang:

Serupa dengan format seperti 23 34. Terdapat ruang antara dua nombor Pada masa ini, menggunakan input int sahaja tidak dapat menyelesaikan masalah, anda boleh menggunakan dua scan.nextInt() berturut-turut untuk input. Walau bagaimanapun, kita masih perlu mengubah perspektif kita pada masa ini. Kami menganggap 23 34 secara keseluruhan sebagai rentetan, dan kemudian membelahnya di ruang menjadi dua rentetan 23 dan 34, dan kemudian menukar dua rentetan ini kepada integer. Sila semak manual bantuan rasmi untuk kaedah split().

import

java.util.Scanner

;

kelas awam Utama {

public static void main(String[] args) {


Imbasan pengimbas = Pengimbas baharu(System.in);
Rentetan[] str = scan.nextLine().split("[ ]");//Dibahagikan kepada beberapa blok, terdapat beberapa aksara Tatasusunan rentetan, berikut ialah dua keping
int a = Integer.parseInt(str[0]);
int b = Integer.parseInt(str[1]);//etc. ..
System.out.println(a " " b);
}
}

2.2 Contoh

3.1 Input format int kompleks

Sama seperti memasukkan a=3, b=2, kaedahnya adalah sama seperti yang dijelaskan dalam 2.1. Di sini kita pergi terus ke contoh.

3.2 Contoh

Input jenis panjang dan jenis int adalah serupa dan tidak akan diterangkan lagi.

3. Jenis berganda

Di Java, jenis berganda harus digunakan lebih kerap daripada jenis apungan.

Jenis titik terapung terutamanya output terformatnya, seperti mengekalkan dua tempat perpuluhan. Di Java, terdapat kaedah printf yang serupa dengan yang dalam bahasa C, dan kami juga boleh menggunakan kaedah format() dalam String untuk melaksanakannya.

1.1 double mengekalkan output format dua digit

import java.util.Scanner;

public class Main {
     public static void main(String[] args) { 

        Scanner scan = new Scanner(System.in); 
        double num = scan.nextDouble(); 
        String a = String.format("%.2f", num); 
        System.out.println(a); 
     }
}

//printf format output:

//System.out.printf("/", num);

1.2 Contoh

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        String[] num = str.split("[;,]");
        String a = String.format("%.2f", Double.parseDouble((num[1])));
        String b = String.format("%.2f", Double.parseDouble((num[2])));
        String c = String.format("%.2f", Double.parseDouble((num[3])));
        System.out.println("The each subject score of No. " + num[0] + " is " + a + ", " + b + ", " + c + ".");
    }
}

4, berbilang input

1.1 Format input

Dalam bahasa C, terdapat dua cara yang lebih mudah untuk menggelung berbilang input:

while(scanf("%d", &n) != EOF)

while(~scanf("%d", &n) )

Di Java, terdapat juga cara mudah:

while(scan.hasNext())

1.2 Contoh

Perlu diingatkan bahawa Apabila memasukkan a aksara tunggal dalam berbilang kumpulan, anda perlu memasukkannya dalam format rentetan untuk menukarnya kepada jenis aksara.

5 Array

Input adalah serupa dengan yang dalam bahasa C. Walau bagaimanapun, perlu diperhatikan bahawa input seperti rentetan adalah jenis penunjuk dalam bahasa C Dalam Java, ia tidak boleh seperti bahasa C, di mana anda boleh memasukkan setiap aksara dalam satu gelung sebelum mempelajari bentuk seutas tali.

1.1 Format input tatasusunan:

import java.util.Scanner;

public class Main {
   public static void main(String[] args) {

       Scanner scan = new Scanner(System.in);
       int[] arr = new int[3];//输入3个
       for(int i = 0; i < arr.length; i++) {
           arr[i] = scan.nextInt();
       }
       for(int i = 0; i < arr.length; i++) {
           System.out.print(arr[i] + " ");
       }
  }
}

2.1 Tukar tatasusunan kepada rentetan

Hanya gunakan kaedah toString() dalam Arrays.

import java.util.Scanner;

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {

       Scanner scan = new Scanner(System.in);
       int[] arr = new int[3];//输入3个
       for(int i = 0; i < arr.length; i++) {
           arr[i] = scan.nextInt();
       }
       System.out.println(Arrays.toString(arr));
   }
}

Masukkan 1, 2, 3 dan anda akan Anda akan melihat [1,2,3]. Kadangkala format soalan OJ ialah 1 2 3. Format [1,2,3] juga boleh lulus.

6. Rentetan

Memandangkan kebanyakan input ditukar kepada jenis rentetan. Oleh itu, untuk rentetan, terdapat banyak operasi penukaran yang diperlukan, seperti menukar rentetan pecahan kepada integer, jenis titik terapung, tatasusunan, dsb.

1.1 Tukar rentetan kepada integer atau jenis titik terapung (mengambil integer sebagai contoh)

int a = Integer.parseInt(str[0] ); //Anggap bahawa str[0] selepas pemisahan ialah aksara '1'

1.2 Jenis integer, jenis titik terapung ditukar kepada rentetan

int num = 10 ;

// Kaedah 1

String str1 = num "";//"" mewakili rentetan kosong, yang berbeza daripada null dalam Java

// Kaedah 2

String str2 = String.valueOf(num);

2.1 Tukar rentetan kepada tatasusunan aksara

import java.util.Scanner;

import java.util.Arrays;

kelas awam Utama {

        public static void main(String[] args) {

        Scanner scan = new Scanner(System.in); 

        String str = scan.nextLine();

        char[] arr = str.toCharArray();

        for (int i = 0; i < arr.length; i++) {

               System.out.print(arr[i] + " ");

        }

      }

}

2.2  字符数组转换成字符串

// 方法1

new String(arr);

//方法2

String.copyValueOf(arr); 

3  举例说明

描述:写一个函数,输入一个字符串,实现字符串的逆置。代码如下:

import java.util.Scanner;

public class Main {

    public static String my_reverse(String str) {

        int left = 0;
        int right = str.length() - 1;
        char[] arr = str.toCharArray();
        while(left < right) {
            char tmp = 0;
            tmp = arr[left];
            arr[left] = arr[right];
            arr[right] = tmp;
            left++;
            right--;
        }
        return new String(arr);
    }

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        String str = scan.next();
        String ret = my_reverse(str);
        System.out.println(ret);
    }
}

 结果如下:


7、快速输入

        用Scanner进行输入是比较慢的,在这里介绍一个新的输入输出的函数。它们相比起来,优点是速度比较快,缺点可能就是太长了,打字很费劲。

import java.io.*;
//省略了Main
    public static void main(String[] args) throws IOException {
        
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        
        int a = Integer.parseInt(bf.readLine());
        System.out.println(a);
        double b = Double.parseDouble(bf.readLine());
        System.out.println(b);
        char c = bf.readLine().charAt(0);
        System.out.println(c);
        char d = (char)bf.read();//都可以,但是这个不能和多组输入连用,原因是它保留了换行。
        System.out.println(d);
        System.out.println("------");
        String str = null;
        //多组输入
        while((str = bf.readLine()) != null) {
            char ch = str.charAt(0);//其他的类似
            System.out.println(ch);
        }
    }

推荐学习:《java学习教程

Atas ialah kandungan terperinci Mari kita bincangkan tentang input dan output jenis data biasa di Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam