java字符串操作大全

java字符串操作大全

String的系统类

1.字符串的介绍
1.字符串是一个常量 存在于常量池中
2.只要是是对字符串操作都是返回一个新的字符串 原字符串不能改
3.同名字符串常量表面发生改变,实则是引用地址发生改变,相当于指针重指
例如:
        String str1 = "WEREW";
        str1 = "kedmw";
        System.out.println(str1);

打印结果: kedmw
2.判断两个字符串地址是否一样
         String string0 = "abc";//字符串存在于常量池
         String string1 = new String("abc");//new 存在于堆区
         String string2 = "abc";
         System.out.println(string1 == string0);//false
         System.out.println(string1 == string1);//true
         System.out.println(string1.equals(string2));//true 

运行结果:
false
true
true

注意 :
String string1 = "abc";//是一个对象
String string2 =  new String("abc");//是两个对象  abc 是一个  new又是一个
3.字符串的获取
1.根据索引获取字符串中字符
char charAt(int index);
2.根据字符获取在字符串中的位置
int indexof(int ch);
int indexof(int ch, int fromIndex);
实例代码:
String string = "wangjiang";
char  c = string.charAt(2);
System.out.println(c);

运行结果: n

注释: 2为字符串string的角标 返还值为char类 是一个字符
String string = "wangjiang";
int b = string.indexOf('a');//传人一个int类型的值
System.out.println(b);

运行结果: 1 

注释:结果为a所在位置角标的值

String string = "wangjiang";
int c = string.indexOf('n',3);
System.out.println(c);  

运行结果: 7 

注释:结果为位置角标后的n的位置角标
4.传人字符串 查找对应位置
String string = "wangjiang";
String string2 = "jia";
int in = string.indexOf(string2);
System.out.println(in);

运行结果: 4

注释:如果运行结果为负值 说明并没有这个字符串
5.是否包含这个字符串
String string = "wangjiang";
String string2 = "jia";
boolean b1 = string.contains(string2);
System.out.println(b1);

运行结果: true
6.拼接字符串
String string = "wangjiang";
String string2 = "jia";
String string3 = string1 + string2;
System.out.println(string3);
String  aa = string1.concat(string2);//返回一个新的字符串
System.out.println(aa);

运行结果:
wangjiangjia
wangjiangjia

注释:两种方法 一种是直接拼接到一个字符串 另一种是从常量池中产生一个新字符串
7.验证字符串的前缀,包含,和后缀
String string  = "www.baidu.com";
//包含
boolean b1 = string.contains("baidu");
System.out.println(b1);
//前缀
boolean b2 = string.startsWith("www");
System.out.println(b2);
//后缀
boolean b3 = string.endsWith("com");
System.out.println(b3);

运行结果: 
true
true
true
8.替换字符
    String string = "wnaglong";
    String rString = string.replace('a', 'x');
    将字符a替换为x
    System.out.println(rString);

运行结果:

wnxglong
9.替换字符串
    String string = "wnaglong";
    将字符串long替换为son
    String rString2 = string.replace("long", "son");
    System.out.println(rString2);

运行结果:

wnagson
10.字符串分割
方法一,
    String string = "wang,ejduwh,s,s,d";
    String[] strings = string.split(",");
    for (int i = 0; i < strings.length; i++) {
        System.out.println(strings[i]);
    }
方法二:
     for(String s : strings) {
        System.out.println(s);
    }

 运行结果:

wang
ejduwh
s

注释:方法二中 冒号前是一个容器 冒号后是要被遍历的数组
11.截取字符串
//  从索引处开始截取 返回的是从索引处往后的字符串
    String string = "wanglong";
    String aString = string.substring(5);
    System.out.println(aString);
//  [0,1)截取时 留头不留尾
    String bString = string.substring(0, 4);
    System.out.println(bString);

运行结果:
ong
wang
12.字符串大写转换
        String string = "wanglong";
//      转大写
        String aString  = string.toUpperCase();
        System.out.println(aString);
//      转小写
        String  string2 = "DIFKKKV";
        String bString = string2.toLowerCase();
        System.out.println(bString);

运行结果:

WANGLONG
difkkkv
13.字符串去前后空格
    String string = " ab wde ";
    String string2 =string.trim();
    System.out.println(string2);
14.字符串比较
        String s1 = "ac";
        String s2 = "abc";
        int num = s1.compareTo(s2);//
        System.out.println(num);

运行结果:  1
注释:
        1.字符串相等时返回的是0
        2.两个字符串长度相同时 3.一位一位比较进行 ASCII码的数值
        4.两个字符串长度不相等时比较的是字符串的长度
注意:汉子也可以转换为数字
        char c = '悬';
        System.out.println((int)c); 

运行结果: 24748
15.判断两这个字符串是否相等
    String string = "wanglong";
    String string2 = "wanglong";
    boolean  aString = string.equalsIgnoreCase(string2);//忽略大小写判断是否相等
    System.out.println(aString);

运行结果: true
16.将字符转换为字符串
        char[] array = {'w','a','n','g'};
//      转字符串
        String string = new String(array);
        System.out.println(string);

运行结果:wang
17.int类转字符串
        int num = 2;
        String aString = String.valueOf(num);
        System.out.println(aString);
18.字符串转字符
String string2 = "wanglong";
        char[] charArray = string2.toCharArray();
        for (char c : charArray) {
            System.out.println(c);
        }
运行结果:
w
a
n
g
l
o
n
g
19.判断字符串是否为空
String string3  = "wanglong";
    boolean b = string3.isEmpty();
    System.out.println(b);
    System.out.println(string3.length());
 运行结果:
false
8
20.字符串倒置
    String a = " abc def ";
//  转换成 字符数组
    char[] charArray = a.toCharArray();
//  遍历交换 长度/2次
    for (int i = 0; i < charArray.length / 2; i++) {
        char temp = charArray[i];
        charArray[i]
                = charArray[charArray.length - 1 -i];
        charArray[charArray.length - 1 - i] = temp;
    }
//  数组转字符串
    String newstr = new String(charArray);
    System.out.println(newstr);
附加题
 * 将字符串 "   abc def   "中的前后空格去掉
 * 转化成 "abc def" 用代码实现(不使用系统方法)
public class Demo05 {
public static void main(String[] args) {
    fun();
}
public static void fun() {
    String string = "   abc def   ";
    char[] charArray = string.toCharArray();
//  声明开始角标 / 结束坐标
    int start  = 0;
    int end  = string.length() -1;
//  寻找从开始 第一个不是空格的索引
    while (string.charAt(start) == ' ' && start < end) {
        start++;
    }
//  寻找结束坐标
    while (charArray[end] == ' ' && start < end) {
    end--;
    }
//  截取新字符串(留头不留尾)
    String ssString = string.substring(start, end + 1);
    System.out.println(ssString);
}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值