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]); } }}
运行结果:
[我, 爱, 中, 国, 人]
我
是,中国人
- Java String操作 trim()
- java--string 操作
- JAVA常用String操作
- Java String操作
- java字符串String的操作
- JAVA string常用的操作
- Java String 字符串操作小结
- java中string字符串操作
- java string类 基本操作
- Java String字符串的操作
- Java String的split操作
- java String类的操作
- Java---->String的基本操作
- java String类常用操作
- 【java】String的基本操作
- Java中String练习操作
- java中String的操作api
- JAVA DOM对XML String操作
- golang中recover和panic用法
- C3P0连接池XML版
- MIT18.06线性代数课程笔记12:使用邻接矩阵证明欧拉定理
- 【Scikit-Learn 中文文档】多类和多标签算法
- 简明 VIM 练级攻略(转)
- Java String操作
- 美国space爬虫
- 解决ssh+mysql进行插入时报dialect is not found错误
- HTML02- 列表、表格与框架
- 【Scikit-Learn 中文文档】集成方法
- Hibernate表间映射时HHH000142异常
- NOIP2017普及组复赛 T3
- 操作系统课程设计实验3 -nachos-Synchronization Using Semaphores
- 数据库sql 基础