Java JavaScript 输入输出
Java
输入
import java.util.*;
Scanner s = new Scanner(System.in);
s.nextInt();//输入整数
s.nextDouble(;//输入双精度数
s.next();//输入字符串,结束符可以是空格键、Tab键或Enter键等,会自动将其去掉
s.nextLine();//结束符只是Enter键
s.nextLine().trim();//可去除前后的空格
oj处理:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
//注意while处理多个case
int a = in.nextInt();
int b = in.nextInt();
System.out.println(a + b);
}
}
}
输出
System.out.println(1111);//换行打印,把括号里的内容转换成字符串输出到输出窗口(控制台),并且换行
System.out.print(1111);//不换行打印
System.out.write(2222);//字节输出
System.out.printf("%+8.3f\n", 3.14);//按格式输出
举例
多行输入多个参数,每行参数个数不定
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class myScanner {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("输入:");
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
sc.nextLine(); // 很重要,跳到第二行
// 若直接确定行数,注释掉上面两行,加入下面一行
// int m = 3;
String[] strArr = new String[m];
// 从第二行开始读取
for(int i = 0; i < m; i++) {
strArr[i] = sc.nextLine();
}
System.out.println("输出:");
System.out.println(Arrays.toString(strArr));
ArrayList<String[]> strToOne = new ArrayList<String[]>();
for(int i = 0; i < m; i ++) {
String[] tmp = strArr[i].trim().split(" ");
strToOne.add(tmp);
}
System.out.println(strToOne);
// 形象点显示
System.out.print("[");
for(int i = 0; i < strToOne.size(); i++) {
System.out.print(Arrays.toString(strToOne.get(i)));
if(i != strToOne.size()-1)
System.out.print(", ");
}
System.out.print("]");
}
}
JavaScript
牛客网
JavaScript(V8)输入输出操作指南
一:单行输入,
牛客网V8引擎是利用了readline()接收输入的每一行,该行字符数不能超过1024个,否则会报错。
let line=readline();
二:多行输入,
同理,好多同学对V8的多行输入示例不是很明白,其实它基于的readline()并不会像JS语言一样后面的会覆盖前面的语句,在这里readline是可以重载的,也就是说每一次调用readline()就会识别一行输入数据,多行输入其实就是写多个readline()即可。
固定行数输入:
let lineNum; // 获取第一行输入的数字,即行数
let lines = []
while(lineNum = parseInt(readline())){
for(let i = 0; i < lineNum; i++) {
lines.push(readline()); // 遍历行数,依次获取每一行的字符
}
}
print(lines) // 一次性全部输出所有结果
/*
eg:
输入:3
1 2
2 3
得到的是 line // 3
lines // ['1 2', '3 4']
*/
任意行数输入:
// 在单行的字符串中以空格作为分隔符,取出多个数据,并且数据转为整型:
let line;
while(line=readline()){ // 有多个输入样例,只要每一行有数据 ,就会继续循环读取单行数据
var lines = line.trim().split(' '); // 去掉每一行的首尾空格,用空格分隔每一行的数据
var a = parseInt(lines[0]); // 将分隔出的字符串转为整型,并存储在变量 a 中
var b = parseInt(lines[1]);
print(a+b);
}
/*
输入:1 2
3 4
6 1
输出:3
7
7
*/
// ---------------------------------------------------------------------
// 直接将每一行的数据(字符串)存入数组 lines 中:
let lines = [], tmp;
while(tmp = readline()){
lines.push(tmp);
}
print(lines);
/*
输入:1 2
3 4
6
输出:1 2,3 4,6
*/
三:输出,
牛客网输出函数用 print() 和 console.log() 都可以,多行输入会根据你的print个数来自动折行;或者利用print(lines + ‘\n’); 来折行。
JavaScript(Node) 输入输出操作指南
单行输入
var readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})
rl.on('line', function(line) {
//line为输入的单行字符串,split函数--通过空格将该行数据转换为数组。
var arr= line.split(' ')
//数组arr的每一项都是字符串格式,如果我们需要整型,则需要parseInt将其转换为数字
console.log(parseInt(arr[0]) + parseInt(arr[1]));
})
多行输入:
任意行输入:
var readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})
var inputs = []
rl.on('line', function(line){
//trim()去除字符串两边的空白,line表示一行输入,最终得到的inputs数组的每一个元素表示一行输入。
inputs.push(line.trim());
console.log(inputs)
//下面再根据要求对每一行数据进行处理,比如类似于单行输入将每一行数据按照空格转换为数组等
// ...
})
// console.log(inputs) // 不要在 rl.on 函数外面输出,否则会输出空串,因为 rl.on 是异步操作
/*
输入:
1 2
3 4
6 1
输出:
[ '1 2' ]
[ '1 2', '3 4' ]
[ '1 2', '3 4', '6 1' ]
*/
固定行输入:
输入第一个数据为接下来要输入的行数
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var inputArr = [];
rl.on('line', function (input) {
inputArr.push(input);
var nLine = +inputArr[0];
if (inputArr.length == (nLine + 1)) {
var arr = inputArr.slice(1);
console.log(arr);
inputArr = [];
}
});
/*
输入:
4
32
12
34
23
输出:
[ '32', '12', '34', '23' ]
*/
输出
console.log("你的结果");
赛码
使用 JavaScript (Google V8 Engine(6.2.340))语言的输入输出:
读取size个字符:gets(size)
将读取至多size个字符,当还未达到size个时如果遇到回车或结束符,会提前结束。回车符可能会包含在返回值中。
let line;
let arr = new Array()
while (line = gets(5)) { // 读取5个字符,此处的 size 包含空格
arr.push(line) // 如下结果可得出,如果第5个元素是换行符,也会被读取
print(line)
}
/*
输入:
1 3 5
12345
1 23
3 4 0 3 5
5 4 8
输出:
1 3 5
12345
1 23
3 4 0
3 5
5 4
8
*/
输出信息:printsth(sth, …)
往控制台输出sth,当有多个参数时,用英文逗号分隔;最后不加回车。
printsth(1, 2, 46, 'a', 'b', '\n')
printsth('x', 'u')
printsth(1, 2, 46, 'a', 'b') // 不加 ‘\n’,则不换行
printsth('x', 'u')
/*
输出:
1 2 46 a b
x u
1 2 46 a bx u
*/
输出一行:print(sth, …) console.error(sth, …) console.debug(sth, …) console.info(sth, …) console.log(sth, …)
往控制台输出sth,当有多个参数时,用英文逗号分隔;最后加回车。
print(1, 2, 46, 'a', 'b') // 每执行一个 print,就输出一行新增加的 print 会自动换行
print('x', 'u')
/*
输出:
1 2 46 a b
x u
*/
读取一个(长)整数:readInt()
从控制台读取一个(长)整数。
let line;
while (line = readInt()) { // 读取到小数点或者空行时,直接挑出
print(line)
}
/*
输入:
188
29.4
203 9
0.01
输出:
188
29
*/
读取一个浮点型:readDouble()
从控制台读取一个浮点型。
let line;
while (line = readDouble()) {
print(line)
}
/*
输入:
188
29.4
203 9
0.01
输出:
188
29.4
203
9
0.01
*/
读取一行输入:read_line()
将读取至多1024个字符,当还未达到1024个时如果遇到回车或结束符,提前结束。读取多行最简单的办法是while((line = read_line()) != ‘’)。
let line;
while (line = read_line()) {
print(line)
}
/*
输入:
188
a b c
29 4
203 9
0.01
输出:
188
a b c
29 4
203 9
0.01
*/
举例*
对于每组测试用例(即输入):
第一行包括2个整数,N(1 <= N <= 1000),M(0 <= M <= N*(N-1)/2),代表现有N个人(用1~N编号)和M组关系;
在接下来的M行里,每行包括3个整数,a,b, c,如果c为1,则代表a跟b是同乡;如果c为0,则代表a跟b不是同乡;
已知1表示小赛本人。
var N, M;
// 每组第一行是2个整数,N和M,至于为啥用while,因为是多组。
while ((N=readInt()) != null && (M=readInt()) != null) {
print (N + ' ' + M);
// 循环读取“接下来的M行”
for (let i=0; i<M; i++) {
let a = readInt();
let b = readInt();
let c = readInt();
// 每行是3个整数,a,b,c。
print(a + ' ' + b + ' ' + c);
}
// M行读取完了,就又要开始下一组了,去while那里。
}
/*
输入:
5 4
1 2 1
3 4 0
2 5 1
3 2 1
输出:
5 4
1 2 1
3 4 0
2 5 1
3 2 1
*/