字符串操作(Java)

字符串是对象,对它所有的操作都是通过“.”这个运算符来进行的

字符串.操作

它表示对左边的这个字符串做右边的那个操作

这里的字符串可以是变量也可以是常量

两个字符串可以比较大小

s1.compareTo(s2)

如果s1比s2小,那么结果是负的;如果s1和s2相等,那么结果是0,;如果s1比s2大,那么结果是正的

import java.util.Scanner;

public class Mains {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		String s1="abc";
		String s2="abbd";
		System.out.println(s1.compareTo(s2));//s1的位置也可以是“abcd”这种
	}
}

 获得string的长度

用length()函数//数组不需要带圆括号,字符串必须带

string name=“Helloworld”//name.length()——7

str1=“one”//str1.length()——3

str2=“”;//str2.length()——0

 访问string里的字符

s.charAt(index)

返回在index上的单个字符

index的范围是0到length()-1

第一个字符的index是0,和数组一样

但是不能用for-each循环来遍历字符串

 

import java.util.Scanner;

public class Mains {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		String s1="abc";
		System.out.println(s1.charAt(2));//这个地方如果是s1.charAt(3)那么索引就会越界
	}
}

//输出结果为c

遍历字符串

import java.util.Scanner;

public class Mains {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		String s1="abc";
		System.out.println(s1.charAt(2));
		for(int i=0;i<s1.length();i++) {
			System.out.println(s1.charAt(i));//遍历呀遍历
		}
	}
}

遍历字符串循环不能用for-each呀呀呀呀呀记住啦~~

得到子串

s.substring(n)//得到从n号位置到末尾的全部内容

s.substring(b,e)//得到从b号位置到e号位置之前的内容//不包括e号!!!!

 

import java.util.Scanner;

public class Mains {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		String s1="abc12345汉字哟k";
		System.out.println(s1.substring(2));
		System.out.println(s1.substring(2,6));
		}
	}

 寻找字符

s.indexOf(c)//得到c字符所在的位置,-1表示不存在

s.indexOf(c,n)//从n号位置开始寻找c字符

s.indexOf(t)//找到字符串t所在的位置

从右边开始找

//s.lastIndexOf(c)

//s.lastIndexOf(c,n)

//s.lastIndexOf(t)

import java.util.Scanner;

public class Mains {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		String s1="abc12342汉字哟k";
		System.out.println(s1.indexOf('4'));
		
		//字符串有两个2,如果想找第二个的话需要先标记第一个
		int loc=s1.indexOf('2');
		System.out.println(s1.indexOf('2',loc+1));//从第一个2的下一个开始寻找2
		System.out.println(s1.indexOf("123"));
		}
	}

 

 其他字符串操作

s.starsWith(t)和s.endsWith(t)//这个字符串是不是一t开头或者结尾

s.trim()//把字符串两端的空格删掉

s.replace(c1,c2)//把字符串所有c1换成c2

s.toLowerCase()//把字符串所有字母改成小写字母

s.toUpperCase()//把字符串所有字母改成大写字母

所有字符串都是不可变的,对它们的操作结果都是制造新的字符串出来,字符串本身不可修改!

例如

import java.util.Scanner;

public class Mains {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		String s1="abc12342汉字哟k";
		String s2=s1.toUpperCase();//定义一个新的字符串s2
		System.out.println(s2);//输出s2
		}
	}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值