この記事では、java に関する関連知識を提供し、主に一般的なデータ型の入出力関連の問題を紹介します。例を通してこれらの問題を解決する方法を見てみましょう。一般的に使用されるデータ型の入出力。皆様のお役に立てれば幸いです。
おすすめの学習:「java チュートリアル」
C言語を学んでJavaに乗り換えて、最初に感じるのはJavaです記述方法は非常に複雑であり、同時によく使用されるデータ型の入出力は C 言語ほど便利ではありません。 C言語ではscanf関数を使用することでほとんどの形式を簡単に入力できますが、Javaではscanf関数に相当する文がありません。
この記事では、私の入出力の習慣と質問の記録を組み合わせて、整数、整数だが分離されたパラメーターなど、さまざまなタイプの概要を作成します。次の手順では、メイン クラスはすべて Main クラスであり、入力には Scanner を使用します。各入力または出力には複数のメソッドがある場合がありますが、ここではより単純なメソッドのみを書きました。
ここでいうchar型とは、1文字のみを入力する場合を指します。
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> {<!-- -->
#ch = (<strong><span style="color:#0d0016;">char)System.in.read();//< ;1></span></strong>
## System.out.println((
int)ch);
}
}
1.2 例
注: 使用する必要がありますIOException 例外が発生します。 では、System.in は標準入力ストリーム (最も一般的にはキーボード) から入力され、rand() メソッドはこのストリームから入力コンテンツを読み取ります。 の入力結果はint型なのでchar型にキャストする必要があります。
1.1 単純な int 形式の入力:
これは、各行に int 形式の入力が 1 つだけある状況を指します。たとえば、各行には整数型が 1 つだけ入力されます。
スキャナ scan = new Scanner(System.in);
int num = scan.nextInt();2.1 スペースを含む int 形式で入力します: 23 34 の形式と同様です。 2つの数値の間にはスペースが入っていますが、このときint入力だけでは問題は解決しませんが、もちろんscan.nextInt()を2つ連続して入力することも可能です。しかし、現時点ではまだ視点を変える必要があります。 23 34 を全体として文字列として扱い、スペースの部分で 23 と 34 の 2 つの文字列に分割し、この 2 つの文字列を整数に変換します。 Split()メソッドについては公式ヘルプマニュアルをご確認ください。 importSystem.out.println(num);
}}
1.2 例
注: Long num である必要があります。そうしないと、num が非常に大きい場合に結果が不正確になります。
java.util.Scanner;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String[] str = scan.nextLine().split("[ ]");//いくつかのブロックに分かれており、いくつかの文字があります文字列配列。ここには 2 つの部分があります
int a = Integer.parseInt(str[0]);
int b = Integer.parseInt(str[1]);//etc. 。 ..
System.out.println(a " " b);
}
}
a=3, b=2の入力と同様、2.1で説明した方法と同じです。ここで、直接例に進みます。
long 型と int 型の入力は似ているため、再度説明しません。 。
Java では、double 型は float 型よりも頻繁に使用する必要があります。
浮動小数点型は主に、小数点以下 2 桁を保持するなど、フォーマットされた出力です。 Java には C 言語と同様の printf メソッドがあり、String の format() メソッドを使用して実装することもできます。
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 形式の出力:
/ / 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) )
Java には、次のような簡単な方法もあります。while(scan.hasNext())
1.2 例入力単一文字の複数のグループが必要であることに注意してください。文字列形式で入力して文字型に変換します。 5. 配列
入力は C 言語と同様です。ただし、C言語では文字列などの入力はポインタ型ですが、Javaでは独自の文字列型があり、C言語のようにループで各文字を入力してからポインタを学習することはできません。文字列。
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 配列を文字列に変換 そのまま使用します配列で toString() メソッドを使用します。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)); } }1、2、3 を入力すると、結果 [1,2,3]。 OJ の質問の形式は 1 2 3 である場合があります。形式 [1,2,3] も渡すことができます。 6. 文字列
ほとんどの入力は文字列型に変換されるためです。したがって、文字列の場合、分割された文字列を整数、浮動小数点型、配列などに変換するなど、多くの変換操作が必要になります。
int num = 10 ;// メソッド 11.2 整数型、浮動小数点型は文字列に変換
import java.util.Scanner;String str1 = num "";//"" は空の文字列を表し、Java の null とは異なります。
// メソッド 2
String str2 = String.valueOf(num);
2.1 文字列を文字配列に変換します
パブリック クラス 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学习教程》
以上がJava の一般的なデータ型の入出力について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。