關於字串的演算法題(一)
String 方法:
1、char charAt(int index)
charAt() 方法用於返回指定索引處的字元。索引範圍為從 0 到 length() - 1
2、boolean equals(Object anObject)
String 類中重寫了 equals() 方法用於比較兩個字串的內容是否相等
3、int indexOf(String str)
返回指定字元在字串中第一次出現處的索引,如果此字串中沒有這樣的字元,則返回 -1。
4、int lastIndexOf(String str):
返回指定子字串在此字串中最右邊出現處的索引,如果此字串中沒有這樣的字元,則返回 -1。
5、int length()
返回字串長度
6、String replace(char searchChar, char newChar)
通過用 newChar 字元替換字串中出現的所有 searchChar 字元,並返回替換後的新字串。
7、String[] split(String regex)
根據匹配給定的正則表示式來拆分字串。
注:.、$、|和*等轉義字元,必須得加\\
8、boolean startsWith(String prefix)
檢測字串是否以指定的字首開始
9、String substring(int beginIndex)
返回字串的子字串,beginIndex
10、char[] toCharArray()
將字串轉換為字元陣列
11、boolean contains(String str)
判斷字串中是否包含指定的字元或字串
12、boolean isEmpty()
用於判斷字串是否為空
相關演算法題:
1、shift挪動
一次shift操作就是把一個單詞的第一個挪到最後,單詞有n位就最多挪n次,問可以和原單詞相同幾次。
如輸入:byebye 輸出:2
輸入:abcd 輸出:1
public class Test3 extends Thread implements Runnable { publicstatic void main(String args[]) { int count = shiftCount("byebye"); System.out.println(count); } public static int shiftCount(String str) { int aLength = str.length(); if (aLength == 0) { return 0; } int count = 0; String cur = ""; for (int i = 1; i <= aLength; i++) { cur = str.substring(i) + str.substring(0,i); if (cur.equals(str)) { count++; } System.out.println(cur); } return count; } }
解析:
1、判斷字串為空的情況
2、建立一個字串用於比對
3、使用substring方法擷取字串,判斷字串相同