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) ;

		
	}
	

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值