Java教程

Java

本文主要是介绍Java,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录
  • Java
        • 1.控制输出
        • 2.判断
        • 3.switch
        • 4.正则匹配 matches()
        • 5.类型
        • 6.输入
        • 7.数组的使用
        • 8.String类的函数
        • 9.异或
        • 10.位运算
        • 11.一些函数

Java

1.控制输出

import java.util.Scanner;
public class Main{
    public static void main(String []args){
        Scanner in=new Scanner (System.in);
        float a=in.nextFloat();
        scanner.close();                                     //关闭输入
        System.out.print(String .format("%.3f",a));         
        //控制输出小数点后几位,无论是double还是float都是%f,不能是%lf
    }
}

//printf可以使用使用格式控制串“%md”输出域宽为m的十进制整数,%c,%f,%.2f都行,双引号里面控制输出格式,假如用逗号连接就输出逗号。    “%02d”,这是要求输出两位整数,位数不够用前导0补齐
String a="ABCDEF";
System.out.printf("%15d",Integer.parseInt(a,16));
//printf("%-8d%-8d%-8d",a,b,c);代表输出三个整数以每个数字占 8 个空格靠右对齐输出(事实是数字在左空格在右)
System.out.println(Integer.valueOf(n1.substring(2),16) + Integer.valueOf(n2.substring(1),8));
//十六进制与八进制换成十进制相加


//输出数字的位数,length()是String类的方法
System.out.print((num + "").length());
//或者
do {
				num = num / 10;
				count++;
			} while (num > 0);
			System.out.print(count);

如果不是void类型的函数,一定要记得return

printf可以有双引号写格式化字符

如果是连续输入判断,可以用while(in.hasNext()){}

小写转大写: char a = (char) (in.next().charAt(0) + 32);

​ 或 String a = in.next().toLowerCase();

System.out.print();不是出口

return 是出口吗

while(in.hasNext()){                    //hasNext()是Boolean类型
     String a=in.next();                //如果想分开写那么a一定是String类型而不是char类型
     char b=(char)(a.charAt(0)+32);     //大写换小写
     System.out.println(b);
 }


2.判断

cost=(int)(price<100 ? price : price<500
                  ? price*0.9 : price<2000
                  ? price*0.8 : price<5000
                  ? price*0.7 : price*0.6);

//也可以直接控制输出内容
System.out.print(weight / (height * height) < 18.5 ? "偏瘦"
				: weight / (height * height) < 20.9 ? "苗条" : weight / (height * height) <= 24.9 ? "适中" : "偏胖");

//连续判断
while (in.hasNext()) {
char a = in.next().charAt(0);
    

逻辑运算符 >=是错误的,一定要用||连接

3.switch

case ‘A’ 但是编译器都是用的双引号

break ; default

4.正则匹配 matches()

String str = scanner.next();
String emailMatcher="[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+";
//加号表示一个或多个,也可以用{2,3}表示,两个或三个
System.out.print(str.matches(emailMatcher)?"邮箱格式合法":"邮箱格式不合法");

5.类型

long

String 不能转换成char,强制转换也不行,只能用charAt()索引,或者substring()截取

八进制以0开头,%o

十六进制以0x开头,%x

6.输入

Scanner in=new Scanner(System.in);
String a=in.next();//输入字符,nextLine()输入后换行

System.out.print(a);

char a=in.next().charAt(0);//charAt()返回指定索引的char值,索引从0开始

float a[]=new float[3];
for(int i=0;i<3;i++){ a[i]=in.nextFloat();}

//BC12
String str = sc.next();
String[] str1 = str.split(";");           //用分号拆分输入的字符串
String[] str2 = str1[1].split(",");       //用逗号拆分除分号之后的第二部分。一定要注意下标!!!
double[] score = new double[3];
for (int i = 0; i < 3; i++) {                          //数组不能整体操作,一定要循环处理
	double num = Double.parseDouble(str2[i]);          //只有转化成包装类,Double类型的对象才能调用String类方法
	score[i] = (double) (Math.round(num * 100)) / 100;    //保证第二位小数是经过四舍五入的
}
System.out.println("The each subject score of No. " + str1[0] + " is " + String.format("%.2f", score[0]) + ", "+ String.format("%.2f", score[1]) + ", " + String.format("%.2f", score[2]) + ".");


next()开始吸收字符后遇到空格/Tab键/回车会停止读入,但是nextLine()可以吸收字符前后的空格/Tab键,回车键停止

7.数组的使用

  int a[]=new int[3];     //数组里有三个元素
  
  int n=in.nextInt();
float a[]=new float[n];   //java允许数组大小是变量,但c不行

//求数组的最大最小值,恰好又知道大致范围,比如百分制,那就可以先定义一个max=0,a[i]>max;min=100,a[i]<min

8.String类的函数

st.append(type x) 增加x到st对象后面

st.charAt(0) 返回指定索引值,从0开始

st.substring(a,b) 含头不含尾,从0开始

st.split(String regex) 用regex拆分st对象

st.format("%.2f",a) 确保a是输出带两位小数

st.indexOf(',')

st.toLowerCase() 转小写

st.matches(s1) 匹配

9.异或

//不用其他参数就可以交换ab的值
a = a ^ b;
b = a ^ b;
a = a ^ b;

valueof()

10.位运算

<< 左移 左移一位就是乘二 例如:求二的n次方System.out.print(2<<(a-1));

11.一些函数

Math.ceil() 向上取整

Math.round(a,b) a是要处理的值,b是要求位数(个位是0,也是默认处理,十位是-1,小数点后一位是1)

这篇关于Java的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!