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("验证失败...");
}
}