一、如何获取输入值?
//js(v8) 直接使用readline()
while(line=readline()){ // 循环获取每行的数据以字符串的形式保存在line中
//line为每行读取的文件
}
let line =readline() //获取一行的数据
//js(node) 需要导入并使用readline()模块
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
while(line = await readline()){
//line为每行读取的文件
}
}()
node.js的输入要复杂一些,这只是获取值的第一步,接下来我们要将值转换为我们容易处理的形式
二、将获取到的字符串转换为数组
1、split(" ")
let str="dw 223 ji23 3i2 5o 23";
let arr=str.split(); //不分隔['dw 223 ji23 3i2 5o 23']
let arr=str.split("") //每个字符都分隔['d', 'w', ' ', '2', '2', '3', ' ', 'j', 'i', '2', '3', ' ', '3', 'i', '2', ' ', '5', 'o', ' ', '2', '3']
let arr=str.split(" ") //以空格为分隔符['dw', '223', 'ji23', '3i2', '5o', '23']
//同理,如果str中间是","为分割符时,可以使用split(",")来转为数组
这其中最常用的应该是split(" “)或split(”,")
2、Array.from(str)和[…str]展开语法的作用与split(“”)的一致,作用是将每个字符串中的字符都转换为一个数组元素(包括空格或者逗号)
字符串可以访问自身的每个字符,但是字符串是不可变的数值类型,无法通过访问索引来修改数值,如果需要修改的话,可以通过以上的方法转为数组来修改,然后再将数组转回字符串
三、将数字字符串转化为数字
在第二步,将字符串转为数组后,数组中的每个元素还是字符串,第二步的作用相当于只是使用不同方法对原始字符串进行了分割。
1、parseInt(str)
(1)如果str前n位为数字字符,则parseInt只会将前n位转为数字;
(2)带小数点的数字字符串是没法直接转的,由于小数点不是数字字符,所以最后只会取整;
(3)带正、负号的数字没法直接转,因为正、负号也不是数字字符
(4)对应的有parseFloat(str)可以处理小数点
2、Number(str)和一元运算符"+"
可以将带正、负号和小数点的数字字符串转化为浮点数
Number(“-22.33”) //-22.33
+“-22.33” //-22.33
3、Math方法(可以处理正负号)
Math.round() //四舍五入
Math.floor() //向下取整
Math.ceil() //向上取整
处理对象可以是字符串也可以是数字
三、输出 console.log()
四、将数组转化为字符串用于输出
1、join(" ")
let str=arr.join(" ") //在每个元素中间加上空格后拼接为字符串
str=arr.join("") //直接将数组的每个元素拼接起来
str=arr.join()
str=arr.join(",") //join与join(",")作用一样,每个元素加上逗号拼接为字符串
2、toString()
(1)作用与join()和join(“,”)一致
(2)其他用法:返回数字对应进制的字符串表示
let num=12;
num.toString(2) //“1100”
num.toString(8) //“14”
num.toString(12) //“10”
3、String()
与join()、join(“,”)、toString()的作用一致,都是加逗号