DUFQ_2020-12-02-杜飞强(字符串)

字符串

字符串格式化

String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。

方法定义

format(String format,Object…args)

第一个参数(String format)表示是被格式化的字符串;

第二个参数(Object…args)表示替换格式符的字符串,参数中的“ …”表示方法是可变参数,即参加的个数根据格式符的个数来确定。

字符串格式化就是使用第二个可变参数中的值按照顺序替换第一个参数中的格式符,即将不同类型的数据连接成一个字符串。

"+"号表示连接的意思

PS:在java中药连接不同类型的数据,将结果变成一个字符串,可以使用加号,也可以使用字符串格式化。

eg:

public static void main(String[] args) {
    String str = null;
    str = String.format("见过,%s及%s", "晁天王", "众位头领");
    System.out.println(str);
    str = String.format("字母a的大写是:%c", 'A');
    System.out.println(str);
    str = String.format("3>7的结果是:%b", 3 > 7);
    System.out.println(str);
    str = String.format("100的一半是:%d", 100 / 2);
    System.out.println(str);
    // 使用printf()方法代替format方法来格式化字符串
    System.out.printf("50元的书打8.5折扣是:%f 元", 50 * 0.85);
}

输出结果为:

字符串格式符

格式符 说明 示例
%s 字符串类型 "李逵"
%c 字符类型 'm'
%b 布尔类型 true
%d 整数类型(十进制) 100
%x 整数类型(十六进制) FF
%o 整数类型(八进制) 77
%f 浮点类型 99.99

字符串与基本类型的转换

由图可见,开发的页面所有输入数据都是string类型,当需要运用计算时,就需要字符串与基本类型的转换。

String转基本类型

编写代码时,整型使用的是int,源代码编译成字节码时,int被自动编译成Integer对象。则称Integer类为int类型的包装类,即将字符串类型转换为基本类型,需要使用基本类型的包装类,基本包装类有如下表所示:

基本类型 包装类 方法名称 作用
boolean Boolean parseBoolean(String) 将字符串转换为boolean型
byte Byte parseByte(String) 将字符串转换为byte型
short Short parseShort(String) 将字符串转换为short型
int Integer parseInt(String) 将字符串转换为int型
long Long parseLong(String) 将字符串转换为long型
float Float parseFloat(String) 将字符串转换为float型
double Double parseDouble(String) 将字符串转换为double型

eg:

public static void main(String[] args) {
    String name   = "燕青";
    String marry  = "false";
    String gender = "M";
    String base   = "5000";
    String comm1  = "300";
    String res1   = "0.85";
    String comm2  = "400";
    String res2   = "0.9";
    String comm3  = "100";

    boolean b_marry = Boolean.parseBoolean(marry);
    char c_gender = gender.charAt(0);
    int i_base = Integer.parseInt(base);
    short c_comm1 = Short.parseShort(comm1);
    float f_res1 = Float.parseFloat(res1);
    long l_comm2 = Long.parseLong(comm2);
    double d_res2 = Double.parseDouble(res2);
    byte b_comm3 = Byte.parseByte(comm3);

    //计算总收入
    double sum = i_base + c_comm1 * f_res1 + l_comm2 * d_res2 + b_comm3;
    System.out.println(name +",性别("+c_gender+")"+",婚否("+b_marry+"),总工资="+sum);
  }

结果显示:

特殊情况

(1)int的包装类是Integer

public static void main(String[] args) {
    String n1 ="9";
    String n2 ="8";
    
    //将String类型的n1转换为int类型的num1
    int num1 = Integer.parseInt(n1);
    int num2 = Integer.parseInt(n2);
    int res = num1 * num2;
    
    //将int类型转换为String类型
    String result = String.valueOf(res);
    //另外一种将int类型转换为String类型
    result = ""+res;
    System.out.println(result);
}

(2)char的包装类是Character

基本类型转String

String类型的数据参与运算时,需要将String类型转换为基本类型,基本类型的数据在界面上显示时需要将数据转换成String类型后输出。

两种输出方法

(1)通过“+"将基本类型与string类型连接,将基本类型转换成String类型。

(2)通过String.valueOf(基本类型数据)方法将基本类型转换成String类型。

public static void main(String[] args) {
    String name   = "燕青";
    boolean b_marry = false;
    char c_gener = 'M';
    int i_base = 5000;
    short c_comm1 = 300;
    float f_res1 = 0.85F;
    long l_comm2 = 400L;
    double d_res2 = 0.9D;
    byte b_comm3 = 100;

    //基本类型转换为String类型方法1,使用加号连接
    System.out.println("*********方法1输出结果**********");
    System.out.println("姓名:"+name);
    System.out.println("是否已婚"+b_marry);
    System.out.println("性别:"+c_gener);
    System.out.println("基本工资"+i_base);
    System.out.println("基础奖金"+c_comm1);
    System.out.println("基础奖金考核得分"+f_res1);
    System.out.println("考核奖金"+l_comm2);
    System.out.println("考核奖金得分"+d_res2);
    System.out.println("全勤补助"+b_comm3);

    //基本类型转换为string类型方法2,使用String.valueOf()
    System.out.println("*********方法2输出结果**********");
    String marry  = String.valueOf(b_marry);
    String gender = String.valueOf(c_gener);
    String base   = String.valueOf(i_base);
    String comm1  = String.valueOf(c_comm1);
    String res1   = String.valueOf(f_res1);
    String comm2  = String.valueOf(l_comm2);
    String res2   = String.valueOf(d_res2);
    String comm3  = String.valueOf(b_comm3);

    System.out.println("姓名:"+name);
    System.out.println("是否已婚"+b_marry);
    System.out.println("性别:"+c_gener);
    System.out.println("基本工资"+i_base);
    System.out.println("基础奖金"+c_comm1);
    System.out.println("基础奖金考核得分"+f_res1);
    System.out.println("考核奖金"+l_comm2);
    System.out.println("考核奖金得分"+d_res2);
    System.out.println("全勤补助"+b_comm3);
}

显示结果:

标签

评论

this is is footer