1.如何反轉字符串?不通過StringBuilder的reverse方法,而是利用java的棧:
/**
* 如何反轉一個字符串?不通過reserve方法。
* 思路:利用數據結構的棧(stack),因爲棧的特點就是先入後出,先把每個字符按順序入棧,再依次出棧,可實現反轉。
*/
/**
* 需要反轉的字符串
*/
String str = "ABCDEFG";
/**
* 將字符串變爲char數組
*/
char[] charArray = str.toCharArray();
/**
* 聲明java的棧
*/
Stack<Character> stack = new Stack<>();
/**
* 聲明stringbuilder
*/
StringBuilder sb = new StringBuilder();
/**
* 通過foreach入棧
*/
for (char item: charArray) {
//push()是入棧
stack.push(item);
}
/**
* 通過for循環出棧
*/
for (int i = 0 ;i < charArray.length ; i++){
//pop()是出棧
sb.append(stack.pop());
}
System.out.println("反轉前:"+str);
System.out.println("反轉後:"+sb.toString());
/**
* 這裏介紹一下棧的幾個方法:
* empty():判斷stack是否爲空;
* peek():棧頂值
* push():進棧
* pop():出棧
*/
2.判斷某個字符在字符串中出現的次數,只能使用String自帶的方法來實現:
/**
* 判斷一個字符串中某個字符的出現的次數,只能使用 String 自帶的方法。
* 思路:將需要判斷的字符利用replace方法替換成"",得到新的長度,用舊的長度來減去新長度就可以了
*/
/**
* 某個字符串
*/
String str = "ABCBBBBQ";
/**
* 需要替換的字符串
*/
String replacestr = "B";
/**
* 聲明數量
*/
int count = 0;
/**
* 替換之前字符串的長度
*/
int oldlength = str.length();
/**
* 將需要替換的字符串變爲空
*/
str = str.replace(replacestr,"");
/**
* 用舊的字符串長度減去替換之後的長度就是某個字符串出現的次數
*/
count = oldlength - str.length();
/*
*這裏輸出5
*/
System.out.println(count);