一、编写一个方法public static int count(String src, String key), 从src内容中查找出key的出现次数:
如:源串为"String testString testString stringtestString abctest",查找“test”时应该返回4。
分析:最笨的方法,将该字符串转化为字符数组依次检索,如果连续的四次检索都是满足第二个字符数组时,则计数器加一。
package T;
import java.text.Format;
import java.util.Locale;
import java.util.ResourceBundle;
public class Test {
public static void main(String[] args) {
System.out.println(count("String testString testString stringtestString abctest","test"));
}
public static int count(String src,String key){
char[] c=src.toCharArray();
char[] c1=key.toCharArray();
int temp=0;
for (int i = 0; i < c.length-3; i++) {
if(c[i]==c1[0]&&c[i+1]==c1[1]&&c[i+2]==c1[2]&&c[i+3]==c1[3])
temp++;
}
return temp;
}
}
二、 编写一个方法public String initcap(String source); 把src内容中的每个单词的首字母改成大写,其它不变。
分析:最笨的方法,直接判断一句话的空格和逗号,在空格和逗号的后面直接将第一个字母转为大写。
package T;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Translate {
public static void main(String[] args) {
String str = "hello world xiaoming I come in"; System.out.println(str);
StringBuffer stringbf = new StringBuffer();
Matcher m = Pattern.compile("([a-z])([a-z]*)", Pattern.CASE_INSENSITIVE).matcher(str);
while (m.find()) {
m.appendReplacement(stringbf, m.group(1).toUpperCase() + m.group(2).toLowerCase());
}
System.out.println(m.appendTail(stringbf).toString());
}
}
三、编写一个Java方法,生成5个不重复的英文小写字母,并按字母顺序排列好
分析:首先取5个不同的随机小写字母,然后对这几个小写字母进行排序。
package Test;
import java.util.Random;
public class Test {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb = getString();
sort(sb);
System.out.println("排序好的字符串:");
System.out.println(sb);
}
public static StringBuffer getString() {
String a = new String("abcdefghijklmnopqrstuvwxyz");
char[] b = a.toCharArray();
int[] a1 = new int[5];
for (int i = 0; i < 5; i++) {
a1[i] = getRandom();
}
check(a1);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 5; i++) {
sb.append(b[a1[i]]);
}
System.out.println("随机的不同的组合字符串:");
System.out.println(sb);
return sb;
}
public static void sort(StringBuffer s) {
for (int i = 0; i < s.length() - 1; i++) {
for (int j = 1; j < s.length() - i; j++) {
if (s.charAt(j) < s.charAt(j-1)) {
char a = s.charAt(j-1);
char b=s.charAt(j);
s.replace(j-1, j, b + "");
s.replace(j, j + 1, a + "");
}
}
}
}
public static int getRandom() {
Random r = new Random();
return r.nextInt(26);
}
public static void check(int[] a) {
for (int i = 0; i < 5; i++) {
for (int j = i+1; j < 5 ; j++) {
if (a[i] == a[j]) {
a[j] = getRandom();
check(a);
}else if(i==4){
return;
}
}
}
}
}