- 今天在牛客网做了一个输入比较复杂的题目,总结一下如何搞定输入参数的保存问题。
屏蔽输入字符中的空格
Scanner scLine = new Scanner(System.in);
String strWithSpace = scLine.nextLine();
String input[] = strWithSpace.trim().split(" {1,}");
各个api作用:
- .trim()去除左右两边的空格
- .split(" {1,}")去除1个或以上的空格
将字符数字转化成int数字
Integer.parseInt(String s ,int radix)//字符数字转化成int数字,radix是进制,默认十进制
api作用:
- Integer.parseInt(String s ,int radix)字符数字转化成int数字,radix是进制,默认十进制
演示程序
import java.util.Scanner;
public class HowToInput {
public static void main(String[] args) {
Scanner scLine = new Scanner(System.in);
System.out.println("input string with space");
System.out.println("enter: a b c d 123 456 ");
String strWithSpace = scLine.nextLine();//" a b c d 123 456 "
System.out.println("strWithSpace.split(\" \")=");
String strSplitComplete[] = strWithSpace.trim().split(" {1,}");//完美剔除前后+中间的空格
System.out.println("================================================");
System.out.println("strWithSpace.trim().split(\" {1,}\")=");
int length = strSplitComplete.length;
for(int i=0;i<length;i++){
System.out.println("strSplitComplete[" + i + "]=" + strSplitComplete[i]);
}
//input: a b c d 123
//strWithSpace.trim().split(" {1,}");->abcd+123+456
//strSplitComplete[0]=a
//strSplitComplete[1]=b
//strSplitComplete[2]=c
//strSplitComplete[3]=d
//strSplitComplete[4]=123
//strSplitComplete[5]=456
System.out.println("=================================================");
//字符数字转化成int数字
String input[] = strWithSpace.trim().split(" {1,}");
int num = Integer.parseInt(input[4]);
System.out.println("字符数字转换成int数字: Integer.parseInt(input[4]) = " + num);
scLine.close();
}
}