1、字符串转化(压缩) “aabbccdaa” -> “a2b2c2d1a2”
关于字符串的压缩,后期会学到zip包,而作为初学者我们应该能够以一些简单的语法把数据的解压敲出来
import java.util.Scanner;
public class TestMain{
public static String stringCompress(String str){
StringBuilder buf=new StringBuilder();
char[] ch=str.toCharArray() ;
char ch1=str.charAt(0);
int count=1;
int i = 1;
for(i=1;i<ch.length;i++){
char ch2=str.charAt(i);
if(ch1==ch2){
count++;
continue;
}
buf=buf.append(count).append(ch1);
count=1;
ch1=ch2;
}
buf=buf.append(count).append(ch1);
return buf.toString();
}
public static void main(String[] args){
System.out.println("请输入您需要输入的字符串:");
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
stringCompress(str);
System.out.println(stringCompress(str));
}
2、统计字符串中数字个数
//如:“abc21b416u” ===> 输出5
这道题相对来说比较简单,只需要遍历字符串的内容在判断每一个字符是否为数字便可
import java.util.Scanner;
public class TestMain{
public static int isNumeric(String str){
char[] ch=str.toCharArray() ;
int count=0;
for(int i=0;i<ch.length;i++){
if(ch[i]>'0'&&ch[i]<'9'){
count++;
}
}
return count;
}
public static void main(String[] args){
System.out.println("请输入您需要输入的字符串:");
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
System.out.println(isNumeric(str));
}
3、题目:=====i am biter 逆置为:biter am i
这道题是面试常考题,只需先将字符串转为字符数组,然后全部逆置再将每个单词逆置
import java.util.Scanner;
public class TestMain{
public static void reverse(int i,int j,char[] ch){//写一个交换函数
while(i<j){
char temp;
temp=ch[i];
ch[i]=ch[j];
ch[j]=temp;
i++;
j--;
}
}
public static String reverseSentence(String str){
char[] ch=str.toCharArray() ;
reverse(0,ch.length-1,ch);//先将整体字符串交换一遍
int begin=0;
for(int i=1; i<ch.length;i++){
if(ch[i]==' '){//包括“ ”也需要判断,当遍历到“ ”时,跳到下一个
reverse(begin,i-1,ch);
begin=1+i;
}
}
reverse(begin,ch.length-1,ch);
return new String(ch);
}
public static void main(String[] args){
System.out.println("请输入您需要输入的字符串:");
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
System.out.println(reverseSentence(str));
}
4、将一个数组从左开始第几位之前的进行旋转:左旋数组
这里用到了String类中的subString方法,substring方法即截取字符串中的子字符串,只需从你指定的数组下标开始截取,然后在和前面的置换,方法十分简单。
import java.util.Scanner;
public class TestMain{
public static void leftRotateString(String str,int n){
String ch=str.substring(n);
String ch1=str.substring(0,n);
String temp;
temp=ch1;
ch1=ch;
ch=temp;
System.out.println(ch1+ch);
}
public static void main(String[] args){
System.out.println("请输入您需要输入的字符串:");
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
System.out.println("请输入您要旋转的字母的下标:");
Scanner scanner1=new Scanner(System.in);
int n=scanner1.nextInt();
leftRotateString( str, n);
}
}