1、数组冒泡排序
public class Exerse1{
public static void arraySort(int[] arr){
for(int i=0;i<arr.length;i++)//i控制冒泡的次数
for(int j=0;j<arr.length-i-1;j++){ // arr.length-1-i是为了减少循环的次数
if(arr[j]>arr[j+1]){
int temp=arr[j]; //交换
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
public static void main(String[] args){
int arr[]={5,3,1,4,7};
arraySort(arr);
System.out.println(Arrays.toString(arr));
}
}
2、统计一个字符串中某一个字符出现的次数
第一种:统计一个字符串的个数
public class Exerse1{
public static int getCount(char[] arr,char ch){
if(arr==null){
return -1;
}
int count=0;
for(int i=0;i<arr.length;i++){
if(arr[i]==ch){
count++;
}
}
return count;
}
public static void main(String[] args){
String str="i want to do something";
char[] arr=str.toCharArray();
int count=getCount(arr,'t');
System.out.println(count);
}
}
第二种:统计多个字符串的个数
public class Exerse1{
public static int[] getCount(char[] arr,char ch,char a){
if(arr==null){
return null;
}
int count=0,count1=0;
int[] countArr=new int[2];
for(int i=0;i<arr.length;i++){
if(arr[i]==ch){
count++;
}
if(arr[i]==a){
count1++;
}
}
countArr[0]=count;
countArr[1]=count1;
return countArr;
}
public static void main(String[] args){
String str="i want to do something";
char[] arr=str.toCharArray();
int[] count=getCount(arr,'t','a');
System.out.println(Arrays.toString(count));
}
}
3、将字符串逆序排列
public class Exerse1{
public static char[] reverse(String str){
char[] arr=str.toCharArray();
for(int i=0; i<arr.length/2;i++){
char temp=0;
temp=arr[i];
arr[i]=arr[arr.length-i-1];
arr[arr.length-i-1]=temp;
}
return arr;
}
public static void main(String[] args){
String str="i want to do something";
char[] arr=reverse(str);
for(int i=0; i<arr.length;i++)
System.out.print(arr[i]);
}
}
4、在空格处插入两个#号
方法一:调用字符串中的append
public class Exerse1{
public static String replace(StringBuffer str) {
StringBuffer str1 = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ' ') {
str1.append('#');
str1.append('#');
} else {
str1.append(str.charAt(i));
}
}
return str1.toString();//返回该对象的字符串表示。
}
public static void main(String[] args) {
StringBuffer str = new StringBuffer("I want to do somethings");
String str1= replace(str);
System.out.println(str1);
}
}
方法二
public class Exerse1{
public static char[] replace(char[] arr){
int count=0;
int len=arr.length;
for(int i=0;i<len;i++){//统计空格个数
if(arr[i]==' '){
count++;
}
}
arr=Arrays.copyOf(arr,len+count);
int k=0;
for(int j=len-1;j>=0;j--,k++){
if(arr[j]!=' '){
arr[arr.length-1-k]=arr[j];
}
else{
arr[arr.length-1-k]='#';
k++;
arr[arr.length-1-k]='#';
}
}
return arr;
}
public static void main(String[] args){
String str="i am a student";
char[] arr=replace(str.toCharArray());
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]);
}
}
}
5、清除字符串中的某个字符
第一种
public class Test{
public static char[] clear(String str,char e){
char[] arr=str.toCharArray();//将字符串转化成数组
int len=arr.length;
int count=0;
for(int i=0;i<len;++i){
if(arr[i]==e){
count++;
}
}
for(int j=len-1;j>=0;j--){
if(arr[j]==e){
for(int k=j;k<len-1;k++){
arr[k]=arr[k+1];
}
}
}
arr=Arrays.copyOf(arr,len-count);
return arr;
}
public static void main(String[] args){
String str="i am a student";
char[] arr=clear(str,'e');
for(int i=0;i<arr.length;++i){
System.out.print(arr[i]);
}
}
}
第二种(和第一种类似)
public class Test{
public static char[] cover(char[] arr,char e){
int count=0;
for(int i=0;i<arr.length;++i){
if(arr[i]==e){
count++;
}
}
for(int i=0;i<arr.length;++i){
if(arr[i]==e){//移动数据
for(int j=i;j<arr.length-1;j++){
arr[j]=arr[j+1];
}
}
}
arr[arr.length-count]='\0';
return arr;
}
public static void main(String[] args){
String str="i am a student";
char[] arr=cover(str.toCharArray(),'e');
for(int i=0;arr[i]!='\0';++i){
System.out.print(arr[i]);
}
}
}