Java String操作

来源:互联网 发布:混合横截面数据举例 编辑:程序博客网 时间:2024/06/07 14:27

字符串

构造函数:
public String()
public String(String value)
public String(char[] value)
public String(char[] value, int from, int count)
public String(byte[] value, int hibyte)
public String(byte[] value, int from, int count,String charset)
public String(StringBuffer buffer)

字符串的创建
String s = “abc”;
String s = new String(“abc”);
后者实际上会创建两个字符串对象,首先是创建参数中的“abc”字符串对象,然后将这个对象做为参数传给了String类的构造方法,最后创建了s指向的这个字符串。

+运算

package test2;public class Demo {    public static void main(String[] args) {        String sa = "abc" + 1;        String sb = "abc" + true;        String sc = true + "a";        String sd =1 + 2 + '0' + "a" + 2 + 3;        System.out.println(sa);        System.out.println(sb);        System.out.println(sc);        System.out.println(sd);    }}

运行结果:
abc1
abctrue
truea
51a23

length()方法
字符串的长度通过length方法来获得
比较:
数组的长度: args.length;
字符串的长度: s.length();
长度是指字符串中字符的个数

判断字符串的开始是否同某个串相同
public boolean startsWith(String s)

判断字符串的结尾是否同某个串相同
public boolean endsWith(String s)

例如:
String str = “Marktonjerry”;
boolean begin = str.startsWith(“Mark”); //true
boolean ends = str.endsWith(“yrrej”); //false

indexOf 查找某个串在字符串中的下标
lastIndexOf返回指定字符在此字符串中最后一次出现处的索引(位置)。

package lesson;public class Shangchuan {    public static void main(String[] args) {        String str="我的图片.png";        String b=str.substring(str.lastIndexOf(".")+1);        if((b.equals("jpg"))||(b.equals("png"))){            System.out.println("上传成功");        }else{System.out.println("上传失败");        }    }}

字符串的不可变

package test2;public class Demo {    public static void main(String[] args) {        String s1 = "I love China";        System.out.println(s1.substring(1,4));        System.out.println(s1);//字符串的不可变性        s1=s1+ " am";        String s2=s1+ " Java";        System.out.println(s2);        s2.replace('J','j');        String s3= "I am ";        s3.trim();//返回字符串的副本,忽略前导空白和尾部空白        String s4=s1+s2+s3;        System.out.println(s4);    }}

运行结果:
I love China
I love China am Java
I love China amI love China am JavaI am

字符串的比较

package test2;public class Demo {    public static void main(String[] args) {            String tom = "abc";                 String mary = "Abc";            String jerry = "Abc";            System.out.println(tom.equals(mary));            System.out.println(tom.equalsIgnoreCase(mary));//equalsIgnoreCase忽略大小写            System.out.println(mary==jerry);//String类是复合类型,栈mary和jerry地址是一样的            System.out.println(tom==jerry);    }}

运行结果:
false
true
true
false

equals 和 ==

package test1;public class T {    private String name;    public String getName() {        return name;    }    @重写equals()方法    public boolean equals(Object obj){        if(obj instanceof T){//instanceof返回一个布尔值判断obj是不是T类型或其子类的实例            T t=(T)obj;//并不一定是T类型            if(this.name==t.name){                return true;            }            return false;        }        return false;    }    public T(String name) {        this.name = name;    }}
package test1;public class Demo {    public static void main(String[] args) {        String s1="123";        String s2="123";        String s3=new String("123");        String s4=new String("234");        T s5=new T("tom");        T s6=new T("tom");        T s7=new T("jack");        System.out.println(s1.equals(s2));        //定义类型是那个类型就会到那个类型里面查找有没有equals方法的重写,s1和s2是String类型        System.out.println(s1.equals(s3));        System.out.println(s1==(s3));        System.out.println(s3.equals(s4));        System.out.println(s6.equals(s5));        System.out.println(s6.equals(s7));    }}

运行结果:
true
true
false
false
true
false

字符串按字典序比较大小

package test2;public class Demo {    public static void main(String[] args) {        String tom ="hi";           String mary ="hi";        String jerry ="Hi";        System.out.println(tom.compareTo(mary));//0        System.out.println(mary.compareTo(tom) );//0        System.out.println(mary.compareTo(jerry));//负值(32)        System.out.println(tom.compareToIgnoreCase(jerry));//0    }}

字符串的转换
Java.lang包中的String类中的静态函数把各种类型的数值转换成字符串

package test2;public class Demo {    public static void main(String[] args) {        float g=12.34f;           String str=String.valueOf(g);        System.out.println(str);    }}

运行结果:
12.34

StringBuilder/StringBuffer

StringBuilder() 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
StringBuilder(int length) 构造一个不带字符,但具有指定初始容量的字符串缓冲区。
StringBuilder(String str)构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
【主要方法】:
append(double d) append(float f)
append(int i) //追加
delete(int start, int end) //删除
insert(int offset, int i) //插入
substring(int start, int end) //截取
indexOf(String str, int fromIndex) //检索
toString() //转为字符串

package test;public class User implements Comparable<User>{    private String name;    private double score;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public double getScore() {        return score;    }    public void setScore(double score) {        this.score = score;    }    public User(String name, double score) {        this.name = name;        this.score = score;    }    @Override    public String toString() {        return "User [name=" + name + ", score=" + score + "]";    }}
package test2;public class Demo {    public static void main(String[] args) {        User T=new User("jack",45.6);        System.out.println(T);//T会默认调用User类中的toString()        System.out.println(T.toString());    }}

运行结果:
User [name=jack, score=45.6]
User [name=jack, score=45.6]

字符串的分割
String类中的分割方法
public String[] split(String regex)

public String[] split(String regex, int limit)

package test1;import java.util.Arrays;public class Demo1 {    public static void main(String[] args) {        String str="我,是,中国人";        String st="我爱中国人";        char[]ss=st.toCharArray();        System.out.println(Arrays.toString(ss));        String data[]=str.split(",",2);        for(int i=0;i<data.length;i++){            System.out.println(data[i]);        }    }}

运行结果:
[我, 爱, 中, 国, 人]

是,中国人

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 安装ps打不开安装包怎么办 安装好的软件打不开怎么办? win10系统语言修改不了怎么办 一个月婴儿吵夜怎么办 玩游戏一直闪退怎么办 钱站一直闪退怎么办 win7重装连不上网怎么办 笔记本屏幕横过来了怎么办 3D贴图丢了怎么办 百度文库安装后手机打不开怎么办 win7系统不带usb驱动怎么办 手机网页上的pdf打不开怎么办 网页下载pdf后缀是.do怎么办 ps界面太小怎么办win10 ps软件打不开程序错误怎么办 ps打开后 未响应怎么办 ps图层无法解锁怎么办 ie8浏览器电脑不能用怎么办 系统要ie6.0才能打开怎么办 2g手机内存不够怎么办 2g运行内存不够怎么办 手机运行内存2g不够怎么办 手机无法加载程序秒退怎么办 电脑账户密码忘记了怎么办 玩绝地求生卡顿怎么办 地下城总运行时间错误怎么办 逆战更新太慢怎么办 win7我的电脑没了怎么办 剑灵启动游戏慢怎么办 网页页面结束进程也关不掉怎么办 开机就启动微信怎么办 微信突然无法启动怎么办 微信发送太频繁怎么办 微信在电脑上打不开文件怎么办 微信照片电脑上打不开怎么办 换一部手机微信怎么办 微信支付宝停止运行怎么办 剑三重制版卡顿怎么办 剑三客户端更新不动了怎么办 安装包安装失败怎么办有内存 qq飞车换手机了怎么办