练习
1.给定字符串,返回字符串中小写英文字母、数字以及其他字符出现的个数
package cn.tedu.string;
public class StringText1 {
public static void main(String[] args) {
String str="adfsv 1 sfd439%^";
//给定统计变量
int count1=0;
int count2=0;
int count3=0;
//遍历字符串
for(int i=0;i='a'&&c<='z'){
count1++;
//判断获取字符是否是数字
}else if(c>='0'&&c<='9'){
count2++;
}else{
count3++;
}
}
System.out.println("小写英文字母的个数"+count1);
System.out.println("数字的个数"+count2);
System.out.println("其他字符的个数"+count3);
}
}
2.给定字符串,对字符串中的数字进行求和
package cn.tedu.string;
public class StringText2 {
public static void main(String[] args) {
//
String str="sfs2445hdf765878";
//提供求和变量
int sum=0;
//遍历字符串
for(int i=0;i='0'&&c<='9'){
//差值就是数字真实值
sum+=c-'0';
}
}
System.out.println(sum);
}
}
3.给定字符串,对(获取)字符串中数字进行排序
public class StringText3 {
public static void main(String[] args) {
String str="sfs215hdf063879";
//新建数组存储字符串对象中的数字
char[] cs=new char[str.length()];
//计数变量,代表数组下标
int index=0;
//遍历字符串
for(int i=0;i='0'&&c<='9') {
//把数字字符存储在新的数组中
cs[index++]=c;
//Arrays.sort(cs);
}
}
//缩容---index(代表字符串对象中数字字符的个数)
cs=Arrays.copyOf(cs,index);
//数组排序
Arrays.sort(cs);
//
System.out.println(Arrays.toString(cs));
4.给定字符串,输出每个字符出现的次数
package cn.tedu.string;
//给定字符串,输出每个字符出现的次数
public class StringText4 {
public static void main(String[] args) {
// 只考虑全部小写
String str1 = "abca";
//提供布尔数组表示字符串中每个字符的状态
boolean[] bb = new boolean[str1.length()];
//给数组元素进行初始化
//true表示未统计 false表示已统计
for(int i=0; i
String str="ejhrv?bwrhf";
//通过while循环实现
while(str.length()>0){
//原串的长度
int length=str.length();
//获取每次字符串的第一个字符
char c=str.charAt(0);
//空串来接收和获取字符拼接的结果
String s="";
//判断是否是需要转义的字符
if(c=='+'||c=='?'){
s="\\"+c;
}else {
s=c+"";
}
//锦绣替换--替换成空串
//让原串指向新串
str=str.replaceAll(s,"");
//输出
System.out.println(c+"="+(length-str.length()));
}
5.给定字符串数组,根据冒泡来进行排序(compareTo )
String[] ss={“abc”,“def”,“ab”,“asf”,“bas”,“acb”};
package cn.tedu.string;
import java.util.Arrays;
//给定字符串数组,根据冒泡来进行排序(compareTo)
//String[] ss={"abc","def","aa","cdf","acb"}
public class StringText5 {
public static void main(String[] args) {
String[] ss={"abc","def","ab","asf","bas","acb"};
for(int i=1;i0){
String temp=ss[j-1];
ss[j-1]=ss[j];
ss[j]=temp;
}
}
}
//
System.out.println(Arrays.toString(ss));
}
}
6.给定字符串String str=“订外卖";,转成字节数组根据字节数组的部分内容转成新的字符串对象,要求无论指定字节数组转成字符串对象的字节数多大,保证新的字符串对象没有?
public class StringText6 {
public static void main(String[] args) throws UnsupportedEncodingException {
String str="订外卖";
byte[] bs=str.getBytes("gbk");
int n=6;
String s=new String(bs,0,n,"gbk");
//判断新串的最后一个字符和原串对应位置的字符是否一致
if(s.charAt(s.length()-1)!=str.charAt(s.length()-1)){
//进了说明出现?
//把新串转成字符数组
char [] cs=s.toCharArray();
//把除了字符数组最后一个字符以外都转成对应的字符串对象
s=new String(cs,0,s.length()-1);
}
System.out.println(s);
}
}
7.给定字符串,返回第一个字符出现的所有下标(indexOf )
public static void main(String[] args) {
//
String str="abcadhajka";
/*int index=0;
for(int i=0;i