Java基础自学笔记——第四章:数学函数、字符、字符串

第四章:数学函数、字符、字符串

一.常用的数学函数

1.三角函数

方法 描述
sin(radians) 弧度->正弦函数值
cos(radians) 弧度->余弦函数值
tan(radians) 弧度->正切函数值
toRadians(degree) 角度->弧度
toDegrees(radians) 弧度->角度
asin(a) 数值->反正弦函数值
acos(a) 数值->反余弦函数值
atan(a) 数值->反正切函数值
double sin=Math.sin(Math.PI/2);//1.0
//cos、tan同理
double radians = Math.toRadians(30);//0.5235987755982988

double degree=Math.toDegrees(Math.PI/4);//45.0
double radians=Math.asin(1.0);//1.5707963267948966
//acos、atan同理

2.指数函数

方法 描述
log(x) 以e为底的对数
exp(x) e的x次方
log10(x) 以10为底的对数
pow(a,b) a的b次方
sqrt(x) x的平方根(x>=0)
double x = Math.log(Math.pow(Math.E, 2));//2.0 其中Math.E为e
double y=Math.exp(2);//7.38905609893065
double z=Math.log10(1000);//3.0
double s=Math.sqrt(4);//2.0

二.服务方法

1.取整方法

方法 描述
ceil(x) 向上取整
floor(x) 向下取整
rint(x) x取整为它最接近的整数,如果x与两个整数的距离相等,偶数的整数作为一个双精度值返回
round(x) 如果x是单精度数,返回(int)(Math.floor(x+0.5);如果x是双精度,返回(long)(Math.floor(x+0.5)
Math.ceil(3.1);//4.0
Math.ceil(-3.1);//-3.0

Math.floor(3.9);//3.0
Math.floor(-3.1);//-4.0

Math.rint(3.1);//3.0
Math.rint(3.5);//4.0
Math.rint(2.5);//2.0
Math.rint(-2.5);//-2.0
Math.rint(-3.5);//-3.0

Math.round(-2.6)//-3  long型
Math.round(2.4)//2  long型
Math.round(2.4f)//2 int型
Math.round(-2.4f)//-2  int型

[个人总结]

  • ceil和floor方法可以想象成一个一维坐标轴
  • 使用rint方法时,当x与两个整数距离相等时,奇数进位,偶数不进位,负数一样。
  • 使用round方法时,单精度返回int型,双精度返回long型,都是加0.5,然后向下取整。

2.min、max、abs方法
服务数据类型:int,long,float,double
返回最小值、最大值、绝对值

3.random方法
random方法在上一章中有讲解,在此不做过多赘述。

三.字符数据类型和操作

1.Unicode码

  • 16位,两个字节
  • \u开头的4位16进制数表示
  • 范围:\u0000-\uFFFF
字符 十进制 Unicode
‘0’-‘9’ 48-57 \u0030-\u0039
‘A’-‘Z’ 65-90 \u0041-\u005A
‘a’-‘z’ 97-122 \u0061-\u007A

2.自增和自减可以用在char字符上

char ch='b';
++ch;//'c'

char ch2='b';
--ch2;//'a'

int x=ch-ch2;//2

3.常用转换

  • 浮点型->char型
char ch=(char)65.9;//'A'
//转换过程:先将65.9转换为int型:65,在转换为char型'A'
  • 0-FFFF的任何一个十六进制数可以隐式转换为char型,不在此范围需显示转换
char ch=0x0041;//'A'
  • 如果另一个操作符是字符或数字,则自动转换为数字,若为字符串则相连
int i='2'+'3';
System.out.println("i is "+i);//i is 101

4.特殊字符的转义序列

  • \b:退格键
  • \f:换页符
  • \r:回车键

5.字符常用方法
由于Character类中方法为静态方法,故无需创建实例调用,静态方法建议直接用类名调用。

Character.isDigit('5');//true      是否为数字
Character.isLetter('5');//false    是否为字母
          isLetterOrDigit(ch);//         数字或字母
          isLowerCase(ch);//             小写字母
          isUpperCase(ch);//             大写字母
          toLowerCase('A');//'a'    转为小写
          toUpperCase('a');//'A'

四.String类型

1.String 类型不是基本数据类型,是引用类型

String message="Java Is Fun";
//message引用了一个内容为Java Is Fun的字符串对象

由于String中的方法只能有一个特定的字符串实例来调用,故又称为实例方法,非实例方法称为静态方法。

2.String 对象的简单方法

String str="welcome";
str.length();//7                   字符串长度
str.charAt(3);//c                  返回指定下标的字符,下标从0开始
str.concat("hello")//welcomehello  连接字符串,也可以使用+连接
str.toUppercase();//WELCOME        返回全大写
str.toLowerCase();//welcome        返回全小写

String str2="welcome to    ".trim();
System.out.println(str.length());//10   去掉两边空格          

[注意] java允许在不创建新变量的情况下,使用字符串直接量引用字符串。

"Welcome to java".length();//15
"".length()//0

3.从控制台读取字符串

[注意] next()方法和nextLine()方法的区别在于next()方法以空白结束(‘ ’、‘\t’、‘\f’、‘\r’、‘\n’);nextLine()方法读取一整行文本,以回车键为结束标志。
next()方法的特点
从控制台获取字符没有专门的方法,只能通过如下方法:

String x=in.nextLine();//读取一条字符串
char ch=x.charAt(0);//取第一个字符

4.String对象的比较方法

String str="welcome";
String str2="welcome";
String str3="hello";
str.equals(str2);//true 字符串内容是否相等,==比较的是是否指向同一个对象
str.equalsIgnoreCase(str2);//true 不区分大小写比较
str.compareTo(str3);//15  比较第一个不相同的字母,返回一个大于0,=0,<0的整数,此例中w比h大15,所以返回正15
str.compareToIgnoreCase(str2);//15  比较不区分大小写,比较规则与上例中相同
str.startsWith("wo");//false   是否以wo开头
str.endsWith("me");//true   是否以me结尾 
str.contains(str2);//true   是否包含str2子串  

5.获得子字符串

String str="welcome to java";
str.substring(3);//come to java   从开始下标到结束
str.substring(3,6);//com   从开始下标到结束下标-1,注意:不包含结束下标
str.indexOf('c');//3   返回字符或字符串下标
str.indexOf('a',4)//12   从下标4之后第一个出现的字符或字符串
str.lastIndexOf('a');//14   最后一个出现的字符或字符串下标
str.lastIndexOf('a',13);//12   从下标13之前出现的最后一个'a'   

[注意] indexOf(str,fromindex)中从fromindex之后查找
lastIndexOf(str,fromindex)中从fromindex之前查找

6.字符串与数字间的转换

String str="123";
int x=Integer.parseInt(str);//123   转为int类型
double y=Double.parseDouble(str);//123   转为double型
……

String str2=123+"welcome";//123welcome

五.格式化输出

1.语法:printf(formate,item1,item2……)
格式化输出
2.格式标识符

格式标识符 描述
%b 布尔值
%c 字符
%d 十进制
%f 浮点数
%e 标准科学计数法
%s 字符串
System.out.printf("%5c",'c');//    c   c前有四个空格
System.out.printf("%6b",true);//  true    true前加两个空格
System.out.printf("%5.3f",3.1415926);//3.142   保留三位小数,并共占5位的空间

[注意]

  • 如果一个条目需要比指定宽度更多的空间,宽度自动增加
  • 默认情况下为右对齐,可添加负号实现左对齐

[补充]2020-04-26
在jdk1.8中String添加新方法:String.join()
语法:String.join(“分隔符”,“字符串数组/集合”)

        //获取所有bean对象如下:
        for(String beanObject:ac.getBeanDefinitionNames()){
    
    
            //获取每个beanObject的别名
            String[] beanName=ac.getAliases(beanObject);
            //打印每个bean对象名称和他的别名   String.join()方法:将字符串数组用特定字符进行连接
            //String.join("特定字符","字符串数组")
            System.out.println(String.format("beanObject:%s,别名:[%s]",beanObject,String.join(",",beanName)));
            //beanObject:helloWord,别名:[helloWorld_2,helloWord_1,he]       
           }

七.总结

通过第四章的学习,我学习到了常用的数学函数和服务方法,服务方法中的取整方法可能有点绕,小伙伴要多留意哦,我还学会了处理字符和字符串的方法,格式化输出对今后的练习非常有帮助,总之,收获很大,希望小伙伴也是!前四章为基础中的基础,下一章我们将接触到循环,基础中的入门,跟紧步伐!

加油!第五章待更……

猜你喜欢

转载自blog.csdn.net/weixin_42563224/article/details/104215429