Java机试--输入输出

牛客 - 输入输出 练习题:

https://ac.nowcoder.com/acm/contest/320#question

import java.util.Scanner;//util.Scanner
public class Main{//class类名
    public static void main(String[] args){//public static void main()  //括号里面:String[] args
        Scanner sc= new Scanner(System.in);//Scanner类,新建对象sc  //括号里:System.in
        while(sc.hasNext()){//循环输入:sc.hasNext()==true
            int x1=sc.nextInt();//下一个Int: sc.nextInt()
            int x2=sc.nextInt();
            //sc.nextLine();
            int s=x1+x2;
            System.out.println(s);//输出用:System.out.println()
        }
    }
}

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc= new Scanner(System.in);
        while(true){
            int n=sc.nextInt();
            if(n==0)break;
            int s=0;
            for (int i=0;i<n;i++){
                int temp=sc.nextInt();
                s+=temp;
            }
            System.out.println(s);
        }
    }
}

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNextLine()){//hasNextLine()按行判断
            String[] s=sc.nextLine().split(" ");//.nextLine后面要有括号 //后面接上split(" ")
            int len=s.length;//String数组也属于基本的类型,使用无括号的.length
            int sum=0;
            for (int i=0;i<len;i++){
                int temp=Integer.valueOf(s[i]);//从行里面(String数组)里选取 //然后使用Integer.valueOf()转换字符串为数字
                sum+=temp;
            }
            System.out.println(sum);
        }
    }
}

 

import java.util.Scanner;
import java.util.Arrays;//引入 util.Arrays
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        String[]s=new String[n];//new String后面不是圆括号,而是方括号[] //可以使用n这个已获得的变量
        for(int i=0;i<n;i++){
            s[i]=sc.next();//
        }
        Arrays.sort(s);//使用.sort()排序
        for (int i=0;i<n;i++){
            System.out.print(s[i]);
            if(i!=n-1)System.out.print(" ");
        }
    }
}

import java.util.Scanner;
import java.util.Arrays;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNextLine()){//
            String[] s=sc.nextLine().split(" ");
            int len=s.length;
            Arrays.sort(s);//直接用Arrays.sort()对已有的String数组进行排序
            for (int i=0;i<len;i++){
                System.out.print(s[i]);
                if(i!=len-1)System.out.print(" ");
                else System.out.println();//不空格,就换行
            }
        }
    }
}

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){//为什么要用hasNext(),不用hasNextLine(): 因为输入描述里面,没收是按行给,可能全部在一行里面
            long x1=sc.nextLong();//整数,可能是长整数  //要用nextLong() 而不是nextInt()
            long x2=sc.nextLong();//nextLong/nextInt/nextLine...而直接next,是String类型;
            long sum=x1+x2;
            System.out.println(sum);
        }
    }
}

输入输出 总结


基础输入:  .next()   .hasNext()两个系列

sc.next()    //String

sc.nextLine()    //一行,形式为String

sc.nextInt()  sc.nextDouble()

复杂输入:  substring + split 伺候

例1

输入是 [1,2,0,0,2,1]

需要转换成数组

//由于输入的是String类型,所以需要转换
String str = sc.nextLine();
String[] strs = str.substring(1,str.length()-1).split(",");//先去掉头尾的方括号;再去掉逗号;
//用的时候需要循环,将String[]转换为int[]

例2

输入是  5,6,8,26,50,48,52,55,10,1,2,1,20,5:3

需要转换成数组,和冒号后面的一个width;

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String string = sc.nextLine();
        String[] strs = string.substring(0,string.length()-2).split(",");
        int size = strs.length;
        int[] nums = new int[size];
        for(int i=0; i<=size-1; ++i){
            nums[i] = Integer.valueOf(strs[i]);
            System.out.println("nums[i] = " + nums[i]);
        }
        int width = Integer.valueOf(string.substring(string.length()-1,string.length()));
        double sum = 0;
        for(int i = 0; i<=width-1; ++i){
            sum += nums[i];
        }
        double maxRatio = 1;
        for(int i=0; i<size-width; ++i){
            double old = sum;
            sum = sum-nums[i]+nums[i+width];
            double ratio = sum/old;
            maxRatio = Math.max(maxRatio,ratio);
        }
        maxRatio -= 1;
        maxRatio *= 100;
        System.out.printf("%.2f", maxRatio);//printf
        System.out.println("%");
    }
}
//5,6,8,26,50,48,52,55,10,1,2,1,20,5:3
//475.00%

输出指定格式


见上方 %.2f 的例子

原文地址:https://www.cnblogs.com/qyf2199/p/12590097.html