1. 程式人生 > 其它 >關於字串的演算法題(一)

關於字串的演算法題(一)

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

-- 起始索引, 索引從 0 開始

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 {

    public
static 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方法擷取字串,判斷字串相同