01 JAVA入门

import java.util.Scanner;
//输入引入头文件,都要注意大小写
import java.text.DecimalFormat;
//DecimalFormat 类位于 java.text 包中,它提供了格式化和解析数字的功能。
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        //1 字符串需要用a.charAt(0);
        String a = sc.next(); // 读取用户输入的第一个字符串
        char c = (char) (a.charAt(0) - 'a' + 'A'); // 将小写字母转换为大写
        //2  输出控制
         DecimalFormat df = new DecimalFormat("0.00");
         System.out.println(df.format(s) + " " + df.format(v));
		 //2.2另一种输出控制
         System.out.printf("%.2f",s);
		 //2.3使用String控制输出
		   System.out.println(String.format("%.3f", v));
		   
         //3多组输入
        while (scanner.hasNextInt()) {
                      // while (scanf("%d %d", &a, &b) != EOF)
                //检查下一行是否还有输入,java里没有eof{后关闭输入
        sc.close();
    }
}

02控制语句

(1)引用对象要自己初始化


class Hotel {
    int price;
    int com;
}

            int n = sc.nextInt();


            for (int i = 1; i <= n; i++) {
                if (h[i] == null) {
                    h[i] = new Hotel();
                }
/*Hotel[] h = new Hotel[5010]; 只是创建了一个 Hotel 类型的数组,
但数组中的每个元素初始值都是 null,并没有创建 Hotel 对象。
为了在访问数组元素的属性之前确保每个元素都有一个 Hotel 对象,
你需要使用 if (h[i] == null) { h[i] = new Hotel(); }
来检查并实例化 Hotel 对象。这样才能安全地设置和访问 price 和 com 等属性
因为数组元素是对象引用,初始时这些引用是 null,所以需要检查和实例化对象。
 */
 
 //但是 int [] a=new int[n],int型有默认值为0
                h[i].price = sc.nextInt();
                h[i].com = sc.nextInt();
            }

03数组应用

import java.util.Arrays;
import java.util.Scanner;
import java.math.BigDecimal;
//高精度引入
public class Main{
    public static void main(String[] args) {
        // 1 数学函数PI,pow,sqrt,ans
        //Math.round()——特殊四舍五入取整,Math.ceil()向上取整,Math.floor向下取整
        double v = (4.0 / 3.0) * Math.PI * Math.pow(r, 3);
        doubel ans=Math.abs(n1-n2);
        // 2 输入:
        String s1=sc.nextLine();//读入一行包括空格
        String s2=sc.Next();//读入字符串不读入空格
        System.out.printf("%-4d",a[i][i1]);//%-4d左对齐
        // 3 字符串
        s.charAt(0),s.length();
        Character.isLetter(c) || Character.isDigit(c)//判断字母数字
        s.length();
        //而数组长度 arr.length没有括号
        // 4 高精度
        BigDecimal a, b;
        a = sc.nextBigDecimal();
        b = sc.nextBigDecimal();

        System.out.println(a.add(b));
        System.out.println(a.multiply(b));
        // 5 套用循环记得重置变量(解方程鸡兔同笼枚举)
        // 6 gcd函数
        public static int __gcd(int a, int b) {
            while (b != 0)
            {  int t = b;
                b = a % b;
                a = t;

            }
            // 7 数组排序
            Arrays.sort(arr, fromIndex, toIndex);
            Arrays.sort(arr);
            // 8 冒泡排序
            // 冒泡排序
            for (int i = 0; i < n - 1; i++) { // 注意循环范围
                for (int j = 0; j < n - 1 - i; j++) {
                    if (a[j] > a[j + 1]) {
                        // 交换
                        int temp = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = temp;
                        ans++;
                    }
                }
            }
            //自定义类需要手动初始化
            class hotel{
                int price;
                int com;
            }
            hotel [] h=new hotel[5010];
            if (h[i] == null) {
                h[i] = new hotel();
                //不然会空指针异常
            }
            h[i].price = sc.nextInt();
            h[i].com = sc.nextInt();
            // 9 三目运算符控制空格输出
            System.out.print((i!=1)?(a[i]+" "):a[i]);

    }
}
import java.util.Arrays;
 import java.util.Scanner;
 public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int m=sc.nextInt(); //歌曲总数
        char songs[] = new char[m];
        
        char temp;
        int i,j;  //循环控制变量
        
        for(i=0;i<m;i++)
        {
            songs[i]=(char)('A'+i);
        }
        
        int n = sc.nextInt(); //操作的次数
        int action;
        for (i = 1; i <= n; i++) {
            action = sc.nextInt();  // 1 2 3
            switch (action) {
            case 1:
                temp = songs[0];   //缓冲区中暂时保留第1首歌
                for(j=0;j<m-1;j++) //每一首歌曲顺序前移
                {
                    songs[j]=songs[j+1];
                }
                songs[j] = temp;   //songs[n-1]赋值为:原来第1首歌
                break;
            case 2:
                temp = songs[m-1]; //缓冲区中暂时保留最后1首歌
                for(j=m-1;j>0;j--) //每一首歌曲顺序后移
                {
                    songs[j]=songs[j-1];
                }
                songs[j] = temp; //songs[0]赋值为:原来最后1首歌
                break;
            case 3:       //歌曲数组第0首、第1首交换
                temp = songs[0];
                songs[0] = songs[1];
                songs[1] = temp;
                break;
            }  
               }
        
        for(i=0;i<m-1;i++)
        {
            System.out.print(songs[i]+",");  //前n-1首歌名,每次加逗号
        }
        System.out.println(songs[i]); //最后一首输出歌名后加回车
    }
 }
posted on 2024-09-06 20:13  Hoshino1  阅读(10)  评论(0编辑  收藏  举报