1. 字符串的转换功能
package cn.hncu_01;
/*
* byte[] getBytes():把一个字符串转成byte数组
* char[] toCharArray():把一个字符串转成char数组
* static String valueOf(char[] chs):
* valueOf方法能把任何数据类型都转换成String(重点)
* static String valueOf(int i)
* String toLowerCase():把一个字符串转成小写
* String toUpperCase():把一个字符串转成大写
* String concat(String str):字符串的拼接,等价于"+"
*/
public class Demo {
public static void main(String[] args) {
String s = "helloworld";
//遍历字符串,方法1
for(int i=0;i<s.length();i++){
System.out.println(s.charAt(i));
}
System.out.println("-----------------");
//遍历字符串,方法2
byte[] bys = s.getBytes();
for(int i=0;i<bys.length;i++){
System.out.println( (char)bys[i] );
}
System.out.println("-----------------");
//遍历字符串,方法3
char[] chs = s.toCharArray();
for(int i=0;i<chs.length;i++){
System.out.println(chs[i]);
}
System.out.println("-----------------");
//System.out.println(chs);
System.out.println(String.valueOf(chs));
System.out.println(s.toUpperCase());
System.out.println("-----------------");
String s2 = "1234";
System.out.println(s.concat(s2));
System.out.println(s+s2);
}
}
package cn.hncu_01;
/*
* 把一个字符串的首字母转成大写,其余为小写。
*
* 分析:
* (1) 定义一个字符串
* (2) 获取第一个字母
* (3) 获取剩余字母(第一个字母除外)
* (4) 把(2)转成大写字母
* (5) 把(3)转成小写字母
* (6) 拼接(4)和(5)
*/
public class Demo2 {
public static void main(String[] args) {
//(1) 定义一个字符串
String s = "sdfaSDDF23d";
//(2) 获取第一个字母
String s2 = s.substring(0,1);
//(3) 获取剩余字母(第一个字母除外)
String s3 = s.substring(1);
//(4) 把(2)转成大写字母
String s4 = s2.toUpperCase();
//(5)把(3)转成小写字母
String s5 = s3.toLowerCase();
//(6) 拼接(4)和(5)
String res = s4+s5;
System.out.println(res);
}
}
2. 其他功能
package cn.hncu_01;
/*
* 替换功能
* String replace(char old,char new)
* String replace(String old,String new)
* 去除字符串两空格
* String trim()
* 按字典顺序比较两个字符串
* int compareTo(String str)
* int compareToIgnoreCase(String str)
*/
public class Demo3 {
public static void main(String[] args) {
System.out.println("helloworld".replace("llo", "54321"));
String s = " hfdhf jijj ";
System.out.println(s.trim());
String s2 = "aaa";
String s3 ="a123";
System.out.println(s2.compareTo(s3));
}
}
package cn.hncu_01;
import java.util.Scanner;
/*
把数组中的数据按照指定个格式拼接成一个字符串
举例:int[] arr = {1,2,3}; 输出结果:[1, 2, 3]
字符串反转
举例:键盘录入”abc” 输出结果:”cba”
统计大串中小串出现的次数
举例:在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中java出现了5次
*/
public class Demo4 {
public static void main(String[] args) {
//1. 键盘录入一个字符串
System.out.println("请输入一个字符串");
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
// 2. 把字符串转成字符数组
char[] chs = s.toCharArray();
//3. 逆序拼接
String res = "";
for(int i=chs.length-1;i>=0;i--){
res = res + chs[i];
}
//4. 输出结果
System.out.println(res);
}
}
4. StringBuffer
package cn.hncu_02;
/*
* StringBuffer
* 线程安全的可变字符序列。
*
* 结论:什么时候用String?什么时候用StringBuffer?
* 字符串拼接多的时候用StringBuffer,其他时候用String
*
*
* StringBuilder 不安全,效率高
*
* 安全--同步--效率低
* 不安全 -- 异步 -- 效率高
*
* 安全和效率的问题永远是困扰我们的问题.
* 安全:银行,医院
* 效率:新闻网站,论坛
*
* StringBuffer和String的区别?
* 前者长度和内容可变,后者不可变.
* 使用前者做字符串拼接时,浪费的资源少
*
* public StringBuffer():无参构造 .默认容量是16
* public StringBuffer(int capacity):指定容量的无参构造方法.
* 一般不用.StringBuffer底层实现了空间的自动增长.
* public StringBuffer(String str):把String转成StringBuffer
*/
public class Demo {
public static void main(String[] args) {
String s ="aa";
//StringBuffer sb = "bb";
StringBuffer sb1 = new StringBuffer();
System.out.println(sb1);
StringBuffer sb2 = new StringBuffer(s);
System.out.println(sb2);
}
}
package cn.hncu_02;
/*
* 添加功能
* public StringBuffer append(String str):添加一个字符串
* public StringBuffer insert(int offset,String str):在指定位置插入一个字符串
* 删除功能
* public StringBuffer deleteCharAt(int index)
* public StringBuffer delete(int start,int end)
* 替换功能
* public StringBuffer replace(int start,int end,String str)
* 反转功能 public StringBuffer reverse()
* 截取功能
* public String substring(int start)
* public String substring(int start,int end)
*/
public class Demo2 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
/* sb.append("aa");
sb.append("bb");
sb.append("cc");*/
//链式编程 方法的返回值是一个对象的时候才可以使用
sb.append("aa").append("bb").append("cc");
sb.insert(2, "1234");
System.out.println(sb);
System.out.println(sb.reverse());
}
}
package cn.hncu_02;
/*
* String和StringBuffer的相互转换
* 提示:通过构造方法可以实现他们之间的相互转换.
*
* 把数组拼接成一个字符串
*
* 把字符串反转
* 判断一个字符串是否是对称字符串
* 例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
*/
public class Demo3 {
public static void main(String[] args) {
String s = "abbas";
//1.把s转成StringBuffer
StringBuffer sb = new StringBuffer(s);
StringBuffer reverse = sb.reverse();
//reverse转成String
String s2 = new String(reverse);
if(s.equals(s2)){
System.out.println("是对称字符串");
}else{
System.out.println("不是对称字符串");
}
}
}
package cn.hncu_02;
/*
* String,StringBuffer,StringBuilder的区别
* String内容不可变,而StringBuffer,StringBuilder内容可变
* StringBuffer同步,数据安全,效率低. StringBuilder异步,数据不安全,效率高
*/
public class Demo4 {
}