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.
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.
Jenis aksara yang disebut di sini merujuk kepada kes di mana hanya satu aksara dimasukkan.
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
}
}
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;
System.out.println(num);
}}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().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:
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);
}
}
Sama seperti memasukkan a=3, b=2, kaedahnya adalah sama seperti yang dijelaskan dalam 2.1. Di sini kita pergi terus ke contoh.
Input jenis panjang dan jenis int adalah serupa dan tidak akan diterangkan lagi.
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.
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); } }Salin selepas log masuk//printf format output:
//System.out.printf("/", num);
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 + "."); } }
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())
Perlu diingatkan bahawa Apabila memasukkan a aksara tunggal dalam berbilang kumpulan, anda perlu memasukkannya dalam format rentetan untuk menukarnya kepada jenis aksara.
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.
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] + " "); } } }Salin selepas log masuk
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)); } }Salin selepas log masuk
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.
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.
int a = Integer.parseInt(str[0] ); //Anggap bahawa str[0] selepas pemisahan ialah aksara '1'
int num = 10 ;
// Kaedah 1
String str1 = num "";//"" mewakili rentetan kosong, yang berbeza daripada null dalam Java
// Kaedah 2
String str2 = String.valueOf(num);
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] + " ");
}
}
}
// 方法1
new String(arr);
//方法2
String.copyValueOf(arr);
描述:写一个函数,输入一个字符串,实现字符串的逆置。代码如下:
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); } }
结果如下:
用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!