1.String 的截取
//操作的字符串
String str="qeqwe:rwqr";
//split截取,通过数组的方式
String split[] = str.split(":");
System.out.println(split[0]);
System.out.println(split[1]);
2.统计字符个数
// 操作的字符串
String str = "qwewqewqrsfdsfg";
//将字符串转换为byte数组
byte[] bytes = str.getBytes();
//外循环,按下标顺序取1个
for (int i = 0; i < bytes.length; i++) {
//定义一个变量保存这个字符出现的次数
int count = 0;
for (int j = 0; j < bytes.length; j++) {
// 如果一样
if (bytes[i] == bytes[j]) {
// 出现次数+1
count++;
}
}
// 因为byte类型输出是ASCII码,所以强转为char类型
char c = (char) bytes[i];
// 输出
// 一定是在内循环结束后输出,这样下次外循环开始以后count就会清零
System.out.println(c + " 有 " + count + " 个 ");
}
3.第一个重复
String inputStr = "teterhrecd";
HashMap<String, String> hm = new HashMap<String, String>();
char[] c = inputStr.toCharArray();
boolean isEcho = false;
for(int i = 0 ; i < c.length; i++) {
for(int j = i+1 ; j < c.length; j++) {
if(c[i] == c[j]) {
isEcho = true;
hm.put(String.valueOf(c[i]), String.valueOf(c[i]));
break;
}
}
/* if(isEcho||hm.get(String.valueOf(c[i])) == null) {
System.out.print("第一个重复的字符"+c[i]);
break;
} */
if(!isEcho&&hm.get(String.valueOf(c[i])) == null) {
System.out.print("第一个不重复的字符"+c[i]);
break;
}
isEcho = false;
}
4.两个字符串间的重复
Scanner in=new Scanner(System.in);
String s1,s2;
try{
System.out.print("请输入第一个字符串:");
s1=in.nextLine();
System.out.print("请输入第二个字符串:");
s2=in.nextLine();
getSameChar(s1,s2);
}
catch(Exception e){
e.printStackTrace(); }
}
public static void getSameChar(String s1,String s2){
char c;//相同字符
char[] same=s1.toCharArray();//数组same用于控制:如果s1字符串中有相同的字符,则只输出一次
//如s1为aabc s2为a 则只输出1次a 而不是两次
int count=0,j;//与数组same相关的变量
int i,k;//循环变量
System.out.println(s1+"与"+s2+"相同的字符有");
for(i=0;i<s1.length();i++){
c=s1.charAt(i);
out:for(k=0;k<s2.length();k++){
if(c==(s2.charAt(k))){
for(j=0;j<count;j++){//如果字符c已经被打印过,则直接跳出循环,查找下一个
if(c==same[j])
break out;//跳出被out标记的循环
}//如果字符c是第一次出现,则把它添加进数组same
same[count]=c;
count++;
//如果字符c是第一次出现,将其打印出来
if(c==' '){
System.out.println("空格键");
break;
}
System.out.println(c);
break;
}
}
}
}
}
5.字母数字判断
int numbers,capitalLetters,smallLetters,others;
numbers=capitalLetters=smallLetters=others=0;
System.out.print("Please input a string:\n");
Scanner s=new Scanner(System.in);
String str=s.next();
System.out.println("Your string is:"+str);
for(int i=0;i<str.length();i++)
{//每次截取一个字符
char c=str.charAt(i);
//循环判断是否是小写字母
if(Character.isLowerCase(c))
{ smallLetters++;
}
else if(Character.isDigit(c))
{ numbers++;
}
else if(Character.isUpperCase(c))
{ capitalLetters++;}
else {
others++;
}
}
System.out.println("数字 ="+numbers);
System.out.println("大写字母 ="+capitalLetters);
System.out.println("小写字母 ="+smallLetters);
System.out.println("其他="+others);
}