java中字符串操作

java中字符串操作


substring(beginIndex,endIndex):【包头不包尾】产生一个在str母字符串中截取莫一段位置的子字符串
charAt(index): 找出在母字符串中第index个字符,返回值为String类型
indexOf(ch): 找出 “ch” 在母字符串中第一个出现的位置,返回值为int类型
toLowerCase(): 字符全部转成小写
toUpperCase(): 字符全部转成大写
replaceAll(regex, replacement): 把字符串中所有的字符 regex 替换成字符replacement;
replace(oldChar, newChar) : 字符替换,把 oldChar 替换成 newChar;
replaceFirst(regex, replacement): 把第一个字符 regex 替换成 字符 replacement
split(regex): 字符串分割 str.split(“s”),以’s’为分割点 ,分割后的字符串里面不包括有‘s’




public class ObjectTextOne extends Object {

	public static void main(String[] args) {	
		
		String str="asdfrsdohsldknfoliasdf";  //定义一个母字符串
		Random num=new Random();        //产生随机数
		
		int num2=str.length();	
		int num1=num.nextInt(num2);
		int num3=num.nextInt(num2-num1)+num1+1;
		
方法1:《str.substring(num1,num3) 【包头不包尾】 方法产生一个在str母字符串中随机字符串》
		*******************************************************************************
		String strOne=str.substring(num1, num3);			
		System.out.println("随机产生一个字符串[长度不唯一]:"+strOne);	
		System.out.println("从"+num1+"个字符开始,到 "+num3+"个字符前结束【包头不包尾】");


	   ---------------------------------------------------------------------------------
方法2:《str.charAt(num)是找出在母字符串中第num个字符,返回值为String类型》
		*******************************************************************************
		System.out.println("第"+num1+"个字符:"+str.charAt(num1));
		System.out.println("第"+(num3-1)+"个字符:"+str.charAt(num3-1));
		System.out.println("随机产生的字符长度为:"+strOne.length());
		

		---------------------------------------------------------------------------------
方法3:《str.indexOf("z"):是 找出“z”在母字符串中第一个出现的位置,返回值为int类型》
		*******************************************************************************
		System.out.println(str.charAt(num1)+"第一个字符出现的位置:"+str.indexOf(str.charAt(num1)));
		System.out.println(str.charAt(num1)+"最后字符出现的位置:"+str.lastIndexOf(str.charAt(num1)));



		---------------------------------------------------------------------------------
方法4:《 toLowerCase(): 字符全部转成小写;      toUpperCase():字符全部转成大写;》
		*******************************************************************************
		System.out.println("随机产生的字符串全部小写:"+strOne.toLowerCase());
		System.out.println("随机产生的字符串全部大写:"+strOne.toUpperCase());	
		strOne+="123";
		System.out.println("随机产生的字符串后面加上“123”:"+strOne);



		---------------------------------------------------------------------------------
方法5:《 replace('z','b'):字符替换,把‘z’ 替换成 'b';  replaceFirst("o","8"):把第一个"o"的替换成"8" 
		replaceAll("0","8"):把字符串中所有的“0 替换成“8”;》
		*******************************************************************************
		System.out.println("把字符串里面的‘o’替换成‘8’[全部替换]:"+str.replace('o','8'));
		System.out.println("把字符串里面的‘o’替换成‘8’[第一个出现的字母替换]:"+str.replaceFirst("o","8"));



		---------------------------------------------------------------------------------
方法6:《 字符串分割  str.split("s"):以's'为分割点 ,分割后的字符串里面不包括有‘s’》
		*******************************************************************************
	     String[] strArray=str.split("s"); 
	     for (int i = 0; i < strArray.length; i++) {
	    	 System.out.println("strArray数组中第"+(i+1)+"个元素:"+strArray[i]);	
		}
	
   -------------------------------------------------------------------------------------------------------------
     
   小练习:过滤特殊字符串;
	
	     String stb="这个商品mmp,是的发送到mmp发阿斯蒂芬nnp阿斯蒂芬垃圾,独裁";  
	     String[] ts={"mmp","垃圾","nnp","独裁"};	//过滤的特殊字符串
	     StringBuffer nStr=new StringBuffer();
	     
	     for (int i = 0; i < ts.length; i++) {	
	    	 nStr.append(stb.replaceAll(ts[i],"***"));
	    	 stb=nStr.toString();	// StringBuffer类型数据转换成String类型数据
	    	 nStr.setLength(0);	 	//清空数据原有的数据
		}
	   System.out.println(stb);

	
   小练习:随机产生验证码: 
      
		String st="";
		for (int i = 0; i < 6; i++) {	
			st+=str.charAt(num.nextInt(str.length()));
		}
		
	   System.out.println("随机产生六个字母,然后全部大写:"+st.toUpperCase());
	   Scanner sc=new Scanner(System.in);  
	   System.out.println("请输入验证码:");
	   
	     if(sc.next().equalsIgnoreCase(st)){
	    	 System.out.println("验证通过...");
	     }else{
	    	 System.out.println("验证失败...");
	     }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值