咳咳,前面我们对接口相关知识做了一个讲解
这篇我们将讲解下我们常见的数字和字符串
由于这篇很简单
我就不一一做代码运行演示了(也就是说不写一个个完整的代码了)
一、数字和字符串的相互转换
数字转字符串
int i = 5;
//方法1
String str = String.valueOf(i);
//方法2
Integer it = i;
String str2 = it.toString();
字符串转数字
String str = "999";
int i= Integer.parseInt(str);
浮点数转整数
double i = 3.14;
int a = (int)i;
基本就这三种转换方法
我只是简单的举一个例子
这东西太简单我就不详细讲解了
你们自己去百度充实下吧
我这里讲的话太浪费时间了 见谅。。。
二、数学类
这是java.lang.Math提供的一些常用的数学运算方法,并且都是以静态方法的形式存在
下面代码演示一下吧
package com.baidu.demo.test6;
public class Demo8 {
public static void main(String[] args) {
float f1 = 5.4f;
float f2 = 5.5f;
//5.4四舍五入即5
System.out.println(Math.round(f1));
//5.5四舍五入即6
System.out.println(Math.round(f2));
//得到一个0-1之间的随机浮点数(取不到1)
System.out.println(Math.random());
//得到一个0-10之间的随机整数 (取不到10)
System.out.println((int)( Math.random()*10));
//开方
System.out.println(Math.sqrt(9));
//次方(2的4次方)
System.out.println(Math.pow(2,4));
//π
System.out.println(Math.PI);
//自然常数
System.out.println(Math.E);
}
}
运行结果:
三、StringBuffer类和StringBuilder类
之前我们有说过String类
它是一个字符串类
我们在声明一个字符串的时候通常都是用它
但其实字符串的相关操作还可以用StringBuffer类和StringBuilder类
下面我们来细细讲解:
1. String 类
String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间。
String a = “a”; //假设a指向地址0x0001
a = “b”;//重新赋值后a指向地址0x0002,但0x0001地址中保存的"a"依旧存在,但已经不再是a所指向的,a 已经指向了其它地址。
因此String的操作都是改变赋值地址而不是改变值操作。
2.StringBuffer类
StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。 每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量。
StringBuffer buf=new StringBuffer(); //分配长16字节的字符缓冲区
StringBuffer buf=new StringBuffer(512); //分配长512字节的字符缓冲区
StringBuffer buf=new StringBuffer(“this is a test”)//在缓冲区中存放了字符串,并在后面预留了16字节的空缓冲区。
3.StringBuffer
StringBuffer和StringBuilder类功能基本相似,主要区别在于StringBuffer类的方法是多线程、安全的,而StringBuilder不是线程安全的,相比而言,StringBuilder类会略微快一点。对于经常要改变值的字符串应该使用StringBuffer和StringBuilder类。
4.线程安全
StringBuffer 线程安全
StringBuilder 线程不安全
5.速度
一般情况下,速度从快到慢:StringBuilder>StringBuffer>String,这种比较是相对的,不是绝对的。
6.总结
(1).如果要操作少量的数据用 = String
(2).单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
(3).多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
四、格式化输出
我们在打印到控制台东西时,如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐
使用格式化输出,就可以简洁明了
%s 表示字符串
%d 表示数字
%n 表示换行
代码演示:
package com.baidu.demo.test6;
public class Demo9 {
public static void main(String[] args) {
String name = "盖伦";
int kill = 8;
String title = "超神";
// 直接使用+进行字符串连接,编码感觉会比较繁琐,并且维护性差,易读性差
String sentence = name + " 在进行了连续 " + kill + " 次击杀后,获得了 " + title + " 的称号";
System.out.println(sentence);
// 使用格式化输出
// %s表示字符串,%d表示数字,%n表示换行,每一个格式化字符就按顺序对应一个后面的变量
//这里的第一个%s对应name 第二个%d对应kill 第三个%s对应title 第四个%n是一个换行的意思
String sentenceFormat = "%s 在进行了连续 %d 次击杀后,获得了 %s 的称号%n";
System.out.printf(sentenceFormat,name,kill,title);
}
}
运行结果:
好啦 就先讲这么多吧
这些为什么不讲的太细呢
是因为我们之前讲的那些课程你们应该已经入门Java了
这篇里面的都是Java的一些基本类
我觉得还是自己多打代码
然后自己用到的时候或者遇到问题的时候再去查百度或者手册会比较好
当然你们也可以 直接问我QQ497099936
24小时不定时在线
好啦 就这样吧
顾得白