java学习之数字与字符串

java学习是根据how2j上提供的资料进行整理,如有雷同,很是正常。

封装类

所有的基本类型,都有对应的封装类。

数字封装类

数字封装类有Byte,Short,Integer,Long,Float,Double,这些类都是抽象类Number的字类。比如int的封装类是Integer,Integer就叫做封装类。

那基本类型如何转化为封装类。

public class TestNumber{
    public static void main(String[] args){
        int i = 1;
        //基本类型转换为封装类
        Integer it = new Integer(i);
    }
}

那封装类如何转化为基本类型

public class TestNumber{
    public static void main(String[] args){
        int i = 1;
        Integer it = new Integer(i);
        //封装类转换为基本类型
        int i2 = it.intValue();
    }
}

那啥叫自动装箱和拆箱。装箱就是说不需要像上述调用构造方法,通过=就能自动转换成Integer类型。

public class TestNumber{
    public static void main(String[] args){
        int i = 2;
        //自动装箱
        Integer it = i;
    }
}

自动拆箱就是说,不需要调用Integer的intValue方法。通过=就自动转换成int类型,就叫做拆箱。

public class TestNumber{
    public static void main(String[] args){
        Integer it = 5;
        //自动拆箱
        int i = it;
    }

还有一个比较常用的就是Int的最大值和最小值可以通过调用Integer.MAX_VALUE和Integer.MIN_VALUE;

public class TestNumber{
    public static void main(String[] args){
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
    }
}

练习自动装箱和拆箱

byte a = 3;
short b = 3;
float c = 3;
double d = 3;
//byte自动装箱和拆箱
Byte az=new Byte(a); 或 Byte az = a;
byte ac=az.byteValue(); 或 byte ac = az;
//short自动装箱和拆箱
Short bz = new Short(b);或 Short bz = b;
short bc = bz.shortValue();或short bc = bz;

数字如何转字符串?有考虑过该问题吗。方法有两个。

方法1. 使用String的静态方法valueOf
方法2. 使把基本类型装箱为对象,然后调用对象的toString

public class TestNumber{
    public static void main(String[] args){
        int i = 5;

        //方法1
        String str = String.valueOf(i);
        System.out.pringln(str);
        //方法2
        Integer i2 = i;
        String str2 = Integer.toString(i2);
        System.out.println(str2);
    }
}

那字符串转数字呢?

调用Integer的parseInt方法

public class TestNumber{
    public static void main(String[] args){
        String str = '999';
        //调用Integer的parseInt方法
        Integer i = Integer.parseInt(str);
        System.out.println(i);
    }
}

那把浮点型3.14转换为 字符串"3.14",在把字符串“3.14”转换为浮点数3.14

public class TestNumber{
    public static void main(Strign[] args){
        float f = 3.14;
        //使用方法一
        String str = String.valueOf(f);
        //使用方法二
        Float f1 = f;
        String str1 = Float.toString(f1);
        Float f2 = Float.parseFloat(str1);
    }
}

java中还提供一些数学方法,并且以静态方法形式存在,意味着可以直接调用。我举几个常见的。

public class TestNumber{
    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.pringln(Math.round(f2));

        //得到0-1之间的随机浮点数(取不到1)
        System.out.println(Math.random());

        //得到0-10之间的随机数(取不到10),这个比较常用
        System.out.println((int)(Matn.random()*10));

        //开方
        System.out.println(Math.sqrt(9));

        //次方
        System.out.println(Math.pow(2,4));

        //派
        System.out.println(Math.PI);

        //自然常数
        System.out.println(Math.E);
    }
}

那如何做到格式化输出?

%s 表示字符串
%d 表示数字
%n 表示换行

代码演示。如下

public class TestNumber{
    public static void main(String[] args){
        String name = "小明";
        int count = 3;
        String title = "一等奖";

        //直接使用+进行字符串连接
        String sentence = name + "获得"+count+"次"+title;
        System.out.println(sentence);
        //使用格式化输出
        String sentence1 = "%s获得%d次%s";
        System.out.printf(sentence1,name,count,title);
    }
}

使用format和printf能够达到一摸一样的效果

public class TestNumber{
    public static void main(String[] args){
        String name = "小明";
        int count = 3;
        String title = "一等奖";

        //直接使用+进行字符串连接
        String sentence = name + "获得"+count+"次"+title;
        System.out.println(sentence);
        //使用格式化输出
        String sentence1 = "%s获得%d次%s";
        System.out.format(sentence1,name,count,title);
    }
}

字符

字符类型的封装类Character。

public class TestChar{
    public static void main(String[] args){
        char c1 = '1';
        //装箱
        Character c = c1;
        //拆箱
        char c2 =c;
    }
}

那char的封装类Character的常见方法有以下几类。

Character.isLetter('a') //判断是否为字母
Character.isDigit('a') //判断是否数字
Character.isWhitespace(' ')//判断是否为空白
Character.isUpperCase('a') //判断是否为大写
Character.isLowerCase('a') //判断是否为小写
Character.toUpperCase('a') //转换为大写
Character.toLowerCase('A') //转换为小写 

字符类型转化为字符串。

public class TestChar{
    public static void main(String[] args){
        //下面的部分会报错,char无法转换成String
        String a = 'a';
        System.out.println(a);
        //可修改成如下
        String a = Character.toString('a');
        System.out.println(a);
    }
}

会报错,报错内容如下。

TestChar.java:4: 错误: 不兼容的类型: char无法转换为String
        String a = 'a';
                   ^

字符串

创建字符串常见方式有以下三种。

1. 每当有一个字面值出现的时候,虚拟机就会创建一个字符串
2. 调用String的构造方法创建一个字符串对象
3. 通过+加号进行字符串拼接也会创建新的字符串对象

public class TestString{
    public static void main(String[] args){
        String gareen = "盖伦";
        String temmo = new String("提莫");
        char[] cs = new char[]{'小','明'};
        String hero = new String(cs);
        String hero3 = gareen + temmo;
    }
}

String被修饰为final,所以不能被继承。字符串也是不可修改的,不可变。

String str = "张三";
str = "李四";
System.out.println(str); //输出李四,str="李四",是重新引用了一个对象,而不是修改了张三这个对象

字符串常见的方法。

方法 解释
charAt(int index) 获取指定位置的字符
toCharArray() 获取对应的字符数组
subString() 截取字符串
split 根据分隔符进行分割
trim 去掉首尾空格
toLowerCase 全部变成小写
toUpperCase 全部变成大写
indexOf 判断字符串或子字符串出现的位置
contains 是否包含子字符串
replaceAll 替换所有的
replaceFirst 只替换第一个

如何判断是否为同一个对象,可通过==进行判断,看下面的代码。

public class TestString{
    public static void main(String[] args){
        String str1 = "the light";
        String str2 = new String(str1);
        String str3 = "the light";
        System.out.println(str1 == str2);
        System.out.println(str1 == str3);
    }
}

判断内容是否相同。使用equals进行字符串内容的比较,必须大小写一致。equalsIgnoreCase忽略大小写判断内容是否一致。

public class TestString{
    public static void main(String[] args){
        String str1 = "the light";
        String str2 = new String(str1);
        String str3 = "the light";
        String str4 = "THE LIGHT";
        //判断对象是否一致
        System.out.println(str1 == str2);
        System.out.println(str1 == str3);
        //equals内容一样返回true
        System.out.println(str1.equals(str2));
        System.out.println(str1.equals(str4));
        //忽略大小写的比较
        System.out.println(str1.equalsIgnoreCase(str4));
    }
}

判断是否以xx字符串开头,是否以xx结束。

public class TestString1 {

    public static void main(String[] args) {
        String str1 = "the light";

        String start = "the";
        String end = "Ight";

        System.out.println(str1.startsWith(start));//以...开始,得到true
        System.out.println(str1.endsWith(end));//以...结束,得到flase

    }
}

StringBuffer是可变长的字符串。

方法 解释
append 追加
delete 删除
insert 插入
reverse 反转
length 长度
capacity 容量

来看代码。

public class TestString{
    public static void main(String[] args){
        String str1 = "let here";

        StringBuffer sb = new StringBuffer(str1);

        //在最后追加
        sb.append("be light");
        System.out.println(sb);

        //删除4到10之间的字符
        sb.delete(4,10);
        System.out.println(sb);

        //在4插入there
        sb.insert(4,"there ");
        System.out.println(sb);

        //反转
        sb.reverse();
        System.out.println(sb);
    }
}

为什么StringBuffer可以变长,和String内部是一个字符数组一样,StringBuffer也维护一个字符数组。但是,这个字符数组,留有冗余长度。

原文地址:https://www.cnblogs.com/yihang996/p/11668867.html

时间: 2024-11-10 01:12:07

java学习之数字与字符串的相关文章

Java学习 之数字排顺序

初次学习java,以下案例仅探讨输入三个数排顺序大小,具体的思路是先输入数字并以,分割开,通过nextLine获取刚才输入的字符串,并通过分割得到该字符串的一个string数组,利用一个for数组将string数组转换为int数组即   arr[i]=Integer.parseInt(s[i]);    然后根据 赋给max,min,mid初始值,分别判断输出其最小值,中值,最大值. import java.util.Scanner; class bigger { public static v

Java学习笔记—第九章 字符串String

第九章 字符串String Java中使用String类来创建一个字符串变量,字符串变量是类类型变量,是一个对象.声明字符串的语法格式如下:String s; 创建字符串:通过String类提供的构造方法可创建字符串,有以下几种方式: (1)创建字符串对象时直接赋值,例如: String s1 = "hello"; String s2 = new String("hello"); (2)由一个字符串创建另一个字符串,例如: String s1 = "hel

java Scanner输入数字、字符串

package java05; import java.util.Scanner;//1.导包 /* Scanner类的功能,可以实现键盘输入数据,到程序当中 引用类型的一班使用步骤: 1.导包 2.创建 3.使用 获取键盘输入的一个int数字, int num = sc.nextInt() 获取键盘输入的一个str字符串, String str = sc.next() * */ public class DemoScanner { public static void main(String[

java学习,从一个字符串中统计同一类型出现的次数

1.从字符串“AS345asdzf*())sddsWE”中统计大写字母.小写字母.其他类型的出现的次数 String s="AS345asdzf*())sddsWE"; int l = 0,b=0,o=0; for(int i=0;i<s.length();i++){ char t= s.charAt(i);//charAt返回索引值 if(t>='a'&&t<='z'){//判断是否为小写字母 l++; }else if(t>='A'&

java学习系列之二---字符串(char.String.StringBuilder以及StringBuffer)

一.String 1.String:字符串常量,字符串长度不可变.Java中String是immutable(不可变)的.String类是被final修饰 2.String str="hello world"和String str=new String("hello world")的区别 public class Main {              public static void main(String[] args) {         String s

Java学习-----02.数组和字符串

数组: 数组的定义: 声明数组.分配空间.赋值 数组对象的创建: 元素为引用数据类型的数组: 二维数组: 二维数组初始化: 复制数组: arraycopy()方法 字符串: java.long.String 类,不可变字符序列 类常用方法: public char charAt(int index) 返回字符串中第index个字符. public int length() 返回字符串的长度. public int indexOf(String str) 返回字符串中出现str的第一个位置 pub

【Java学习】获取一个字符串在另一个字符串出现的次数

public class StringCount {     public static void main(String[] args) {         String ss = "kkabkkcdkkefkkskk";         String key = "kk";         System.out.println(getSubCount_2(ss,key));     }     public static int getSubCount_2(St

Java学习总结:飘逸的字符串

Java学习:飘逸的字符串 前言 相信不管我们运用Java语言来开发项目还是进行数据分析处理,都要运用到和字符串相关的处理方法.这个社会处处有着和字符串相关的影子:日志.文档.书籍等.既然我们离不开字符串,那么就来好好认识一下吧. 怎么构造一个字符串? 在Java语言里,有两种方法来创建一个字符串对象:一是用字符串直接量 1 String message=new String("Welcome to Java"); 2 String message2="Welcome to

Java学习笔记_18_字符串、包装类、原始数据类剪得转换

18. 字符串.包装类.原始数据类剪得转换: 各个转换如下: 1>String 转换成Integer: Integer integer = new Integer("string");或 Integer Integer = Integer.valueOf(String): 注:String必须是数字字符串,如:"1232". 2>Integer 转换成String: String str = Integer.toString(); 3>Intege