String练习题
1.分析以下需求,并用代码实现
(1)定义如下方法public static String getPropertyGetMethodName(String property);
(2)该方法的参数为String类型,表示用户给定的成员变量的名字,返回值类型为String类型,返回值为成员变量对应的get方法的名字
(3)如:用户调用此方法时给定的参数为"name",该方法的返回值为"getName"*
public static String getPropertyGetMethodName(String property){
String str = "get"+property.substring(0, 1).toUpperCase();
System.out.println(str);
str += property.substring(1,property.length());
return str;
}
2.给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置.
如:"abcbcbabcb34bcbd"中,"bcb"子串的出现位置为: 1,7,12.字符串和子串均由用户输入
public static void main(String[] args) {
calculateSubStrIndexFromString("abcbcbabcb34bcbd","bcb",0);
}
public static void calculateSubStrIndexFromString(String string,String subStr,int startIndexFirst) {
int startIndex = startIndexFirst;
int existingIndex = string.indexOf(subStr, startIndex);
while(existingIndex != -1)
{
System.out.println("存在的index为: "+existingIndex);
calculateSubStrIndexFromString(string,subStr,existingIndex+subStr.length());
break;
}
}
3.分析以下需求,并用代码实现:
(1)定义数字字符串数组{“010”,“3223”,“666”,“7890987”,“123123”}
(2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出
(3)如:010 是对称的,3223 是对称的,123123 不是对称的
(4)最终打印该数组中对称字符串的个数
public class h2 {
public static void main(String[] args) {
// 定义数字字符串数组
String[] str = { "010", "3223", "666", "7890987", "123123" };
// 对数组进行遍历
for (int i = 0; i < str.length; i++) {
// 用s对接收上一个字符串
String s = str[i];
// 判断是否对称
if (isSymmetric(s)) { // 抽取一个方法
// 如果对称打印
System.out.println(s);
}
}
}
/*
* 参数列表是字符串 返回值类型是布尔
*/
public static boolean isSymmetric(String s) {
String s2 = "";// 定义一个字符串
// 对字符串倒序遍历
for (int i = s.length() - 1; i >= 0; i--) {
s2 += s.charAt(i);// 对字符串进行索引,并赋值给s2
}
return s2.equals(s); // 返回一个布尔值,比较s2与s的值是否相等
}
}
4.分析以下需求,并用代码实现:
(1)从键盘循环录入录入一个字符串,输入"end"表示结束
(2)将字符串中大写字母变成小写字母,小写字母变成大写字母,其它字符用"*"代替,并统计字母的个数
举例:
键盘录入:Hello12345World
输出结果:hELLO*wORLD 总共10个字母
public class h3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串");
boolean flag = true;
while (flag) {
String str = sc.nextLine();
// 字符串比较一定要用equals不能用 ==
// String 是引用数据类型,== 比较的是地址值
if (str.equals("end")) {
break;
}
int count = 0;
char[] arr = str.toCharArray();
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 'a' && arr[i] <= 'z') {
arr[i] = (char) (arr[i] - 32);
count++;
} else if (arr[i] >= 'A' && arr[i] <= 'Z') {
arr[i] = (char) (arr[i] + 32);
count++;
} else {
arr[i] = '*';
}
System.out.print(arr[i]);
}
System.out.println("\n" + count);
}
}
}
5、键盘录入一个字符串,统计该字符串中的大写字母、小写字母、数字字符和其他字符分别有多少个
例如,键盘录入abcABCD12345!@#$%&,输出结果为:小写字母有3个,大写字母有4个,数字字符有5个
public class h4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String str = sc.nextLine();
//toCharArray()方法将字符串转换为字符数组
char[] chs = str.toCharArray();
int bigNum = 0;
int smallNum = 0;
int numberNum = 0;
int otherNum = 0;
for(int i=0;i<chs.length;i++){
if(chs[i]>='A'&&chs[i]<='Z'){
bigNum++;
}else if(chs[i]>='a'&&chs[i]<='z'){
smallNum++;
}else if(chs[i]>='0'&&chs[i]<='9'){
numberNum++;
}else{
otherNum++;
}
}
System.out.println("大写字母个数:"+bigNum+",小写字母个数:"+smallNum+",数字个数:"+numberNum+",其他字符个数:"+otherNum);
}
}
6、定义一个方法,功能如下:给定一个数组,转换成一个字符串例如:数组为int[] arr = {1, 2, 3},字符串为[1, 2, 3]
public class h5 {
public static void main(String[] args) {
/* byte[] buf = {1,2,3};cv
String str = new String(buf);
System.out.println(str);*/
int[] array = {1,2,3};
// String str = toString(array);
System.out.println(toString(array));
}
public static String toString(int[] array) {
String str = "[";
for(int i=0;i<array.length;i++) {
str+=array[i];
if(i==array.length-1) {
str+="]";
}else {str+=",";
}
}return str;
}
}
7、定义一个方法,功能如下:给定一个字符串,返回该字符串的反转形式。例如:字符串为abcdef,返回结果为fedcba
import java.util.Scanner;
public class h6 {
public static void main(String[] args) {
String str = "abcdef";
System.out.println(reverse(str));
}
public static String reverse(String str) {
// toCharArray()方法将字符串转换为字符数组
char[] chs = str.toCharArray();
for (int i = 0, j = chs.length - 1; i < j; i++, j--) {
char temp = chs[i];
chs[i] = chs[j];
chs[j] = temp;
}
return new String(chs) ;
}
}
本文地址:https://blog.csdn.net/m0_37650057/article/details/107372415
推荐阅读
-
C#中String和StringBuilder的简介与区别
-
C#使用String和StringBuilder运行速度测试及各自常用方法简介
-
详解Java中String类型与默认字符编码
-
Java常用类String的面试题汇总(java面试题)
-
Net Core 下 Newtonsoft.Json 转换字符串 null 替换成string.Empty
-
function string类型的参数传递
-
jdk中String类设计成final的原由
-
全面解释java中StringBuilder、StringBuffer、String类之间的关系
-
js获取年月日格式(教你将日期从string转成date)
-
C#中StringBuilder用法以及和String的区别分析