在练习题目中输入常见的有两类,单行用空格,制表符等隔开以及用换行符隔开。
第一种:用一个或者多个空格以及制表符隔开的一行数据
import java.util.Scanner;
public class shuru{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//创建一个键盘扫描器
System.out.println("please input:");
String s = sc.nextLine();//nextline()读取到回车结束(但是会吸收回车的数据)
String[] x = s.split("\\s+");//JAVA中split给出一个正则表达式(分割字符串)(\\s+表示匹配一个或者多个空格)
for(int i = 0;i<x.length;i++){
System.out.println(x[i]);//循环输出
}
}
}
输入数据(ab{一个空格}cd{两个空格}e{一个制表符}fgh),结果为:
第二种:每个数据以换行符隔开。
import java.util.Scanner;
public class shuru{
public static void main(String[] args) {
Scanner input=new Scanner(System.in);//创建一个键盘扫描器
int length=20; //设定数组大小
String a[] = new String[length];//创建数组
for (int i = 0; i < length; i++) {
a[i]=input.nextLine();//输入数据,按照换行符隔开
if("exit".equals(a[i])){
//比较字符串中内容是否相同,输入exit结束程序
break; //跳出循环,结束程序
}
}
for(int j = 0;j<length;j++){
if(a[j].equals("exit")){
//如果为exit则直接结束输出
break;
}
System.out.println(a[j]);
}
}
}
输入数据(ab{换行符}cd{换行符}e{换行符}fgh{换行符}exit),结果为:
在练习题目中输出常见的有两类,单行用空格隔开以及用换行符隔开。
在空格隔开的类型里有最后一位带空格,或者不带空格,这里就需要控制输出的格式:
import java.util.Scanner;
public class shuchu{
public static void main(String[] args){
int[] a={
1,2,3,4,5};
int length=a.length;
for(int j=0;j<length;j++){
System.out.print(a[j]+" ");
}
}
}
此时输出结果为空格隔开且最后带一个空格。
另一种情况只需要简单加入一个判断即可:
import java.util.Scanner;
public class shuchu{
public static void main(String[] args){
int[] a={
1,2,3,4,5};
int length=a.length;
for(int j=0;j<length;j++){
if(j!=5){
System.out.print(a[j]+" ");
}else{
System.out.print(a[j]);
}
}
}
}
用换行符隔开的情况:
import java.util.Scanner;
public class shuchu{
public static void main(String[] args){
int[] a={
1,2,3,4,5};
int length=a.length;
for(int j=0;j<length;j++){
if(j!=5){
System.out.println(a[j]);
}
}
}
}
还有链表的输入:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
public class lianbiaoshuru {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] str = scanner.nextLine().split(" ");
ListNode listNode = null;
ListNode p = null;
ArrayList<Integer> result = new ArrayList<>();
if(str.length == 0) {
listNode = null;
}
else {
for (int i = 0; i < str.length; i++) {
ListNode temp = new ListNode(Integer.parseInt(str[i]));
if (listNode == null) {
listNode = temp;
p = temp;
} else {
p.next = temp;
p = p.next;
}
}
}
result = printListFromTailToHead(listNode);
Iterator<Integer> it = result.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
System.out.println();
}
public static ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> result = new ArrayList<>();
if(listNode == null) {
return result;
}
else {
while (listNode != null) {
result.add(0, listNode.val);
listNode = listNode.next;
}
return result;
}
}
}
以及满二叉树的输入:
static class TreeNode {
public int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
}
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String [] strs=sc.nextLine().split(",");
if(strs[0].equals("None")){
System.out.print("True");
System.exit(0);
}
int len = strs.length;
ArrayList<TreeNode> list=new ArrayList<>();
for(int i= 0; i< len;i++){
list.add(new TreeNode(Integer.valueOf(strs[i])));
}
int temp = 0;
while(temp <= (len-2)/2){
if(2*temp +1 < len){
list.get(temp).left = list.get(2 * temp + 1);
}
if(2*temp +2 < len){
list.get(temp).right = list.get(2 * temp + 2);
}
temp++;
}
TreeNode root = list.get(0);
}