1.将字符串反转
2.将给定字符串的正序和反序进行连接
3.设计一个方法, 判断给定字符串是否是回文 abccba abcba
4.设计一个方法将给定的字符串有位移位置 (hellowoed,2)–1dhellowerd
5.寻找若干字符串中最长的那个 ab,abc,abcd -->abcd
6.统计给定字母在字符串中出现的次数 this is a test of java -->a,3
7.将给定的字符串每一个首字母大写
8.获取给定字符串中的全部数字 za1o1zbp24tcq–1124
方法类:
public class TestString {
//1设计一个方法 将字符串反转++++++++++++++++++++++++++++++++++++++++++++++
// 是否需要参数String 是否需要返回值String
public String reversestr(String str) {
// 将str变换成数组
char[] value = str.toCharArray();
// 数组头尾互换
for (int i = 0; i < value.length / 2; i++) {
char temp = value[i];
value[i] = value[value.length - 1 - i];
value[value.length - 1 - i] = temp;
}
// 数组合成字符串 返回
return new String(value);
}
//使用String方法
public String reversestr1(String str) {
return new String(new StringBuffer(str).reverse());
}
//2.设计一个方法 将给定字符串的正序和反序进行连接 ok-->okko +++++++++++++++++++++++++++++
public String reverseAndConcat(String str) {
// 将strfanzhuan
String value = this.reversestr1(str);
// str之后拼接,反转过来的字串
String result = str.concat(value);
// 将结果返回
return result;
}
// 3.设计一个方法, 判断给定字符串是否是回文 abccba abcba++++++++++++++++++
//是否需要String 是否需要返回值boolean
public boolean isPalinDrome(String str) {
// 先反转
if (this.reversestr1(str).equals(str)) {
return true;
}
return false;
// 用str与反转之后的字串比较
}
// 4.设计一个方法将给定的字符串有位移位置 (hellowoed,2)--1dhellowerd++++++++++++++++++++++++
public String moveToRight(String str, int count) {
if (count > str.length()) {
count = count % str.length();
}
// 截取
// 前半部分
String begin = str.substring(0, count);//拼接时放在最后
// 后半部分
String end = str.substring(str.length() - count, str.length());//拼接时放在前面
// 拼接以后返回
return end.concat(begin);
}
// 5 设计一个方法 寻找若干字符串中最长的那个 ab,abc,abcd -->abcd +++++++++++++++++++++++
// 是否需要参数 若干个String.. 是否需要返回值String
public String findMaxLengthString(String... strs) {
String result = strs[0];
int maxLength = strs[0].length();
for (int i = 1; i < strs.length; i++) {
if (strs[i].length() > maxLength) {
maxLength = strs[i].length();
result = strs[i];
}
}
return result;
}
// 6设计一个方法 统计给定字母在字符串中出现的次数 this is a test of java -->a,3 ++++++++++++++
public int letterExistCount1(String str, char letter) {
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == letter) {
count++;
}
}
return count;
}
public int letterExistCount2(String str, char letter) {
return str.length() - str.replace(String.valueOf(letter), "").length();
}
// 7 设计一个方法 将给定的字符串每一个首字母大写+++++++++++++++++++++++++++
// this is a test of java -->This Is A Test Of Java
// 是否需要参数String 是否需要返回值String
public String firstLetterToUpperCase(String str) {
String result = "";//最终拼接成完整字符串
// 将字符串按照空格拆分成好多单词 split
String[] value = str.split(" ");
// 循环处理每一个单词,截取首字母--》大写 截取其余字母 整体拼接
for (int i = 0; i < value.length; i++) {
String word = value[i];//获取每一个单词
String firstLetter = word.substring(0, 1).toUpperCase();//首字母截取变大写
String otherLetters = word.substring(1);//其余的其他字母
result = result.concat(firstLetter.concat(otherLetters) + " ");//注意String的不可变性
}
// 每一次的单词拼接成一个完整的字符串 返回
return result.trim();//去掉最后多余的那个空格
}
// 8设计一个方法,获取给定字符串中的全部数字 za1o1zbp24tcq--1124 +++++++++++++++++++++++++++
public int findNumber(String str) {
String result = "";
// 循环每一个字符
// 判断是否是数字 根据code码'0'--'9' 48--'57'
for (int i = 0; i < str.length(); i++) {
int code = str.codePointAt(i);//每一个字符对应的code码
if (code >= 48 && code <= 57) {
result += (char) code;
}
}
return Integer.parseInt(result);
}
}
TestMain类:
public class TestMain {
public static void main(String[] args) {
// 创建对象
TestString testString = new TestString();
String res = testString.reversestr("中华人民共和国");
System.out.println("没有使用String方法:" + res);
// 使用String
String res1 = testString.reversestr1("中华人民共和国");
System.out.println("使用String方法:" + res1);
String abc = testString.reverseAndConcat("abc");
System.out.println("字符串反转拼接" + abc);
boolean abccba = testString.isPalinDrome("abccba");
System.out.println("判断是否是回文:" + abccba);
String rightl = testString.moveToRight("后面前面", 2);
System.out.println("位移之后:" + rightl);
String resultLeng = testString.findMaxLengthString("abc", "b", "abcde", "abcsd");
System.out.println("最长的串:" + resultLeng);
int a = testString.letterExistCount1("this is a test of java", 'a');
System.out.println("第一种统计方法" + a);
int i = testString.letterExistCount2("this is a test1 of other java", 'a');
System.out.println("第二种统计方法" + i);
String s = testString.firstLetterToUpperCase("this is a test of java");
System.out.println("单词首字母大写之后" + s);
System.out.println("字符串长度" + s.length());
int nuresult = testString.findNumber("za1o1zbp24tcq");
System.out.println("提取字符串中的数字" + nuresult);
}
}
结果:
没有使用String方法:国和共民人华中
使用String方法:国和共民人华中
字符串反转拼接abccba
判断是否是回文:true
位移之后:前面后面
最长的串:abcde
第一种统计方法3
第二种统计方法3
单词首字母大写之后This Is A Test Of Java
字符串长度22
提取字符串中的数字1124
Process finished with exit code 0