This article brings you relevant knowledge about java, which mainly introduces the input and output related issues of common data types. Let’s take a look at how to solve these problems through examples. Questions about input and output of commonly used data types. I hope it will be helpful to everyone.
Recommended study: "java tutorial"
After learning C language and switching to Java, the first thing I feel is Java The writing method is very complicated, and at the same time, the input and output of commonly used data types are not as convenient as C language. In C language, using the scanf function can easily input most formats, but not in Java. There is no statement similar to scanf in Java.
This article combines my input and output habits and records of doing questions to make a summary of these different types, such as integers, integers but separated parameters... In the following instructions, the main classes are all Main classes, and we use Scanner for input. Each input or output may have multiple methods, and I only wrote the simpler method.
The char type mentioned here refers to the case where only one character is entered.
import
<span style="background-color:#ed7976;">java.io.IOException</span>;//Import Package
public
class
Main {<!-- -->
public
static
void
main(String[] args)
<span style="background-color:#ed7976;">throws</span>
<span style="background-color:#ed7976;">IOException</span> {<!-- -->
#ch = (<strong><span style="color:#0d0016;">char)System.in.read();//<1></span></strong>
##System.out.println((
int)ch);
}
}
1.2 Example
Note: Need to be used with IOException exception. In <1>, System.in is input from the standard input stream (most commonly the keyboard), and the rand() method reads the input content from this stream. The input result of <1> is int type and needs to be cast to char type.
1.1 Simple int format input:
This refers to the situation where each line has only one int format input. For example, only one integer type is entered in each line. import java.util.Scanner;public class Main { public static void main(String[] args) {Scanner scan = new Scanner(System.in);
int num = scan.nextInt();System.out.println(num);}
}
1.2 Example
Note: It needs to be Long num, otherwise the result will be inaccurate when num is very large.
Similar to the format of 23 34. There is a space between the two numbers. At this time, using int input alone cannot solve the problem. Of course, you can use two scan.nextInt() consecutively for input. However, we still need to change our perspective at this time. We treat 23 34 as a whole as a string, and then split it at the space into two strings of 23 and 34, and then convert these two strings into integers. Please check the official help manual for the split() method.
import
java.util.Scanner;
public class Main { public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String[] str = scan.nextLine().split("[ ]");//Divided into several blocks, there are several characters String array, here are two pieces
int a = Integer.parseInt(str[0]);
int b = Integer.parseInt(str[1]);//etc. ...
System.out.println(a " " b);
}
}
Similar to inputting a=3, b=2, the method is the same as explained in 2.1. Here we go directly to the example.
The input of long type and int type are similar and will not be described again.
In Java, the double type should be used more often than the float type.
The floating point type is mainly its formatted output, such as retaining two decimal places. In Java, there is a printf method similar to that in C language, and we can also use the format() method in String to implement it.
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); } }Copy after login//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 + "."); } }
while(scanf("%d", &n) != EOF)## while(~scanf("%d", &n) )
In Java, there is also a simple way:while(scan.hasNext())
1.2 ExampleIt should be noted that multiple groups of input single Characters need to be input in string format to convert to character type. 5. Array
The input is similar to that in C language. However, it should be noted that input such as strings is a pointer type in C language. In Java, it has its own string type. It cannot be like C language, where you can input each character in a loop before learning pointers. form a string.
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 Convert array into string Use Just use the toString() method in Arrays.import java.util.Scanner;import java.util.Arrays;
Enter 1, 2, 3 and you will see the result [1,2,3]. Sometimes the format of OJ questions is 1 2 3. The format [1,2,3] can also pass. 6. Stringpublic 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)); } }Copy after login
Since most input is converted to string type. Therefore, for strings, there are many conversion operations required, such as converting the split string into integers, floating point types, arrays, etc.
int num = 10 ;// Method 11.2 Integer type, floating point type is converted into a string
import java.util.Scanner;import java.util.Arrays;String str1 = num "";//"" represents an empty string, which is different from null in Java
// Method 2
String str2 = String.valueOf(num);
2.1 Convert string into character array
public class Main {
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学习教程》
The above is the detailed content of Let's talk about the input and output of common data types in Java. For more information, please follow other related articles on the PHP Chinese website!