zoukankan      html  css  js  c++  java
  • Java第02次实验提纲(Java基本语法与类库)

    PTA

    基本语法-01-综合小测验

    代码:

    import java.util.Arrays;
    import java.util.Scanner;
    public class Main 
    {
    	static int nums[];//所有类都可访问
    	public static void main(String[] args) 
    	{
    		Scanner sc = new Scanner(System.in);
    		while(sc.hasNext())
    		{
    			String choice=sc.nextLine();
    			switch(choice)
    			{
    			case"sort":
    				sort(sc);//分类
    				break;
    			case"fib":
    				fib(sc);//打印
    				break;
    			case"search":
    				search(sc);//查找
    				break;
    			case"getBirthDate":
    				getBirthDate(sc);//取数字
    				break;
    			default:
    				System.out.println("exit");
    			    break;
    			}
    		}
    		sc.close();
    	}
    	private static void getBirthDate(Scanner sc) {
    		   int num=Integer.parseInt(sc.nextLine());
    		   for(int i=0;i<num;i++)
    		   {
    			   String bir=sc.nextLine();
    			   System.out.println(bir.substring(6,10)+"-"+bir.substring(10,12)+"-"+bir.substring(12,14));//substring取特定位置
    		   }
    	}
    
    	private static void search(Scanner sc) {
    		   int flag=0;
    		   int num=Integer.parseInt(sc.nextLine());
    		   for(int i=0;i<nums.length;i++)
    		   {
    			   if(nums[i]==num)
    			   {
    				   System.out.println(i);
    				   flag=1;//找到
    				   break;
    			   }
    		   }
    		   if(flag==0)
    		   {
    			   System.out.println("-1");
    		   }
    	}
    
    	private static void sort(Scanner sc) {
    		String line=sc.nextLine();
    		String[] numStrs=line.split(" ");//新内容!!!!!
    		nums=new int[numStrs.length];
    		for(int i=0;i<numStrs.length;i++)
    		{
    			nums[i]=Integer.parseInt(numStrs[i]);
    		}
    		Arrays.sort(nums);//自动排序
    		System.out.println(Arrays.toString(nums));//输出
    	}
    
    	private static void fib(Scanner sc) {
    		   int num=Integer.parseInt(sc.nextLine());//parseInt转数字
    		   if(num==1)
    		   {
    			   System.out.println("1");
    		   }
    		   else if(num==2)
    		   {
    			   System.out.println("1 1");
    		   }
    		   else if(num>2)
    		   {
    			   int num1=1;
    			   int num2=1;
    			   System.out.print("1 1");
    			   for(int i=3;i<=num;i++)//数列解法
    			   {
    				   int tmp=num1+num2;
    				   System.out.print(" "+tmp);
    				   num1=num2;
    				   num2=tmp;
    			   }
    			   System.out.println();
    		   }
    	}
    }
    

    switch Alt+/:

    		switch (key) {
    		case value:
    			
    			break;
    
    		default:
    			break;
    		}
    

    for Alt+/:

    		for (int i = 0; i < args.length; i++) {
    			
    		}
    

    while Alt+/:

    		while (condition) {
    			
    		}
    

    main Alt+/:

    	public static void main(String[] args) {
    		
    	}
    

    快速创建程序框架:

    输入sort(sc),后会自动出现波浪线,点击后产生选项后自动生成

    身份证排序

    代码:

    
    import java.util.Scanner;
    import java.util.Arrays;
    public class Main
    {
    	public static void main(String args[])
    	{
    		Scanner sc=new Scanner(System.in);
    		int num=sc.nextInt();//读取一个标志转为数字
    		String[] str=new String[num];
    		for(int i=0;i<num;i++)
    		{
    			str[i]=sc.next();
    		}
    		String[] data=new String[num];
    		for(int i=0;i<num;i++)
    		{
    			data[i]=str[i].substring(6, 15);//取年月日
    		}
    		Arrays.sort(data);//自动排序
    		while(true)
    		{
    		String a=sc.next();
    		switch(a)
    		{
    		case"sort1":
    		  for(int i=0;i<num;i++)
    		  {
    			System.out.println(data[i].substring(0, 4)+"-"+data[i].substring(4, 6)+"-"+data[i].substring(6, 8));
    		  }
    		  break;
    		case"sort2":
    			int[] number=new int[num];
    			int g=0;
    			for(int i=0;i<num;i++)
    			{
    				for(int j=0;j<num;j++)
    				{
    					String b=str[j].substring(6, 15);
    					if(b.equals(data[i]))
    					{
    						number[g]=j;
    						g++;
    					}
    				}
    			}
    			for(int i=0;i<num;i++)
    			{
    				System.out.println(str[number[i]]);
    			}
    			break;
    			default:
    				System.out.println("exit");
    				break;
    		}
    		}
    	}
    }
    

    Arrays.sort:自动对数组内容进行排序
    subString:格式:字符串.subString(字符开始的下标,开始的下标+要取得个数),自动获取特定位置的字符串

    StringBuilder

    代码:

    import java.util.Scanner;
    public class Main 
    {   
        public static void main(String[] args) 
        {   
        	Scanner sc=new Scanner(System.in);
        	while(sc.hasNext())
        	{
        	   int n=sc.nextInt();
        	   int begin=sc.nextInt();
        	   int end =sc.nextInt();
        	   StringBuilder str = new StringBuilder();
               for (int i = 0; i < n; i++) 
               {
                   str.append(i);
               }
               System.out.println(str.substring(begin,end));
        	}
        }
    }
    

    由于string的不变性,过多次调用将会产生许多无效字符串,此处用StringBuilder可避免上述情况的发生,添加时使用append。

    ArrayList入门

    代码:

    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Comparator;
    import java.util.Scanner;
    public class Main
    {
    	public static void main(String[] args) 
    	{
    		ArrayList<String> strList=new ArrayList<>();//新建ArrayList strList
    		Scanner sc=new Scanner(System.in);
    		while(sc.hasNext())
    		{
    			String a=sc.next();
    			if("!!end!!".equals(a))
    			{
    				break;
    			}
    			else
    			{
    				strList.add(a);//ArrayList添加用add
    			}
    		}
    		strList.add(0, "begin");//第一个位置插入
    		strList.add("end");
    		System.out.println(strList);
    		String str=sc.next();
    		System.out.println(strList.contains(str));//判断是否包含str
    		System.out.println(strList.indexOf(str));//从前判断
    		System.out.println(strList.lastIndexOf(str));//从后判断
    		String s=strList.get(0);//获取特定位置
    		strList.remove(0);//移除特定位置
    		System.out.println(s);
    		System.out.println(strList);
    		str=sc.next();
    		strList.set(1, str);
    		System.out.println(strList);
    		str=sc.next();
    		ArrayList<String> strList1 = new ArrayList<>();
    		for(int i=0;i<strList.size();i++)
    		{
    			if(strList.get(i).contains(str))
    				strList1.add(strList.get(i));
    		}
    		System.out.println(strList1);
    		strList.remove(str);
    		System.out.println(strList);
    		strList.clear();
    		System.out.println(strList+","+strList.size()+","+strList.isEmpty());
    	}
    }
    

    ArrayList相关用法:

    ArrayList<类型> 名字(List)=new ArrayList<>();
    List.add(e);//添加元素e
    List.remove(i);//移除下标为i的元素
    List.set(i,e);//在下标i的位置插入元素
    List.get(i)l//获取下标为i的元素
    List.contains(e);//判断是否含有e,有则返回true,没有则返回flase
    List.clear();//清空
    List.size();//List元素数量
    

    浮点数的精确运算

    代码:

    import java.math.BigDecimal;
    import java.util.Scanner;
    public class Main
    {
    	public static void main(String args[])
    	{
    		Scanner reader=new Scanner(System.in);
    		while(reader.hasNext())
    		{
    			String a=reader.next();
    			String b=reader.next();
    			BigDecimal a1=new BigDecimal(a);
    			BigDecimal b1=new BigDecimal(b);
    			System.out.println(b1.add(a1));//a+b
    			System.out.println(b1.multiply(a1));//a*b
    		}
    	}
    }
    

    直接使用double类型数据进行运算,无法得到精确值

  • 相关阅读:
    Java JPA 入门
    Java JSP 常用标签及自定义标签
    Collection 之 Set、List和Map
    Socket 详解
    MyEclipse 配置SQL Server 2008数据库驱动
    IO 常用IO操作类继承结构 及简单简介
    JSP 相关对象
    Android 入门体验
    C#访问修饰符总结
    C# Socket编程 同步以及异步通信
  • 原文地址:https://www.cnblogs.com/960223447a/p/15202574.html
Copyright © 2011-2022 走看看