Javase—String类习题

/**
 * 1.字符串解析,现有一字符串,"卡巴斯基#杀毒软件#免费版#俄罗斯#",解析出每个元素。
 */

package com.Oracle.String_1;

public class Text01 {

	public static void main(String[] args) {
		String s="卡巴斯基#杀毒软件#免费版#俄罗斯#";
		String[] str=s.split("#");
		for(String n:str) {
			System.out.println(n);
		}
	}

}
/**
 * 2."那车水马龙的人世间,那样的来,那样的去,太匆忙"中最后一次出现“那”的位置
 */

package com.Oracle.String_1;

public class Text02 {

	public static void main(String[] args) {
		String s="那车水马龙的人世间,那样的来,那样的去,太匆忙";
		System.out.println(s);
		System.out.println("最后一次出现'那'的位置:"+s.lastIndexOf("那"));
	}

}
/**
 * 3.判断输入的字符串是否是 .java 结束 
	提示:public boolean endsWith(String suffix) (查帮助,查此方法的说明) 
 */

package com.Oracle.String_1;

import java.util.Scanner;

public class Text03 {
	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner s=new Scanner(System.in);
		System.out.println("请输入一串字符");
		String str=s.next();
		if(str.endsWith(".java")) {
			System.out.println("输入的字符串以.java结束");
		}else {
			System.out.println("输入的字符串不是以.java结束");
		}
	}

}
/**
 * 4.有一身份证号,判断此为男还是女,基于此方法,
 * 写一个算法,判断一个身份证号为男还是女。(身份证分15位和18位)
 */

package com.Oracle.String_1;

import java.util.Scanner;

public class Text04 {

	public static void main(String[] args) {
		System.out.println("请输入您的身份证号:");
		@SuppressWarnings("resource")
		Scanner s=new Scanner(System.in);
		String str=s.next();
		System.out.println(str.length());
//		当身份证为18位时,倒数第二位为单数则性别为男,双数则为女
		if(str.length()==18) {
			if(str.charAt(str.length()-2)%2==0) {
				System.out.println("该身份证号码主人的性别为女");
			}else {
				System.out.println("该身份证号码主人的性别为男");
			}
		}
//		当身份证为15位时,倒数第一位为单数则性别为男,双数则为女
		else if(str.length()==15) {
			if(str.charAt(str.length()-1)%2==0) {
				System.out.println("该身份证号码主人的性别为女");
			}else {
				System.out.println("该身份证号码主人的性别为男");
			}
		}
		
	}

}
/**
 * 5.有如下格式的字符串name-age-sex-address,解析出姓名,年龄等信息。
 */

package com.Oracle.String_1;

import java.util.Scanner;

public class Text05 {
	public static void main(String[] args) {
		System.out.println("请按照name-age-sex-address的格式输入信息:");
		@SuppressWarnings("resource")
		Scanner s=new Scanner(System.in);
		String str=s.next();
		String[] information=new String[4];
		information=str.split("-");
		for(String n:information) {
			System.out.println(n);
		}
		
	}
}
/**
 * 6.求出字符串中有多少种字符,以及每个字符的个数
	static void printCharInfo(String str)
 例如有字符串 str="apple is a apple.";
   结果应该是a:3 p:4 l:2 e:2  :3 i:1 s:1 .:1
 */

package com.Oracle.String_1;

import java.util.Scanner;

public class Text06 {
	public static void main(String[] args) {
		System.out.println("请输入一段字符:");
		Scanner s=new Scanner(System.in);
		String str=s.nextLine();
//		str=str.replace(" ", "");
//		System.out.println(str);
//		System.out.println(str.length());
//		for(int i=0;i=65 || c<=122&&c>=97;c++) {
			n=0;
			for(int i=0;i
以下代码中需要用到的Resolve方法:
package com.Oracle.String_1;

public class Resolve {
//	将字符串右侧的空格删除
	public static String rtrim(String str) {
//		String s=str;
		while(str.endsWith(" ")) {
			str=str.substring(0, str.length()-1);
		}
		return str;
	}
//	将传入的字符串和其翻转后的字符串连接在一起
	public static String concat(String str) {
		
		str=str+Resolve.reverse(str);
		
		return str;
		
	}
//	将字符串进行翻转
	public static String reverse(String s) {
		StringBuffer sb=new StringBuffer(s);
		return sb.reverse().toString();
//		char[] c=new char[s.length()];
//		for(int i=0;i=0;i--) {
//			c[i]=c[i-position];
//		}
////		将move中储存的原数组末尾的元素移到元素开头的位置
//		while(k>0) {
//			c[--k]=move[k];
//		}
////		将字符数组创建为字符串,赋给str
//		str=new String(c);
//		return str;
//	}
	
	/**
	 * 求5个字符串中最长的那个,把最长的字符串打印出来
	 * @param s
	 * @return
	 */
	public static String longestString(String[] s) {
		String longest=s[0];
		for(int i=0;is[i].length()?longest:s[i];
		}
		return longest;
	}
	/**
	 * 若可以从一个源字符串中, 找到一个相符的字符串(忽略大小写), 则返回第一个字符的索引位置,否则返回-1。
	 * @param str
	 * @param subStr
	 * @return
	 */
	public static int stringAt(String str,String subStr) {
		if(str.toLowerCase().contains(subStr.toLowerCase())) {
			return str.toLowerCase().indexOf(subStr.toLowerCase());
		}
		return -1;
	}
//	判断是否是回文
	public static boolean rotate(String s) {
		if(s.equals(Resolve.reverse(s))) {
			return true;
		}
		return false;
	}
}
第七题:
/**
 * 7.定义一个方法,用来去掉字符串右边的空格
	String rtrim(String str)
	
 */

package com.Oracle.String_1;

import java.util.Scanner;

public class Text07 {
	public static void main(String[] args) {
		System.out.println("请输入一段字符:");
		Scanner s=new Scanner(System.in);
		String str=s.nextLine();
		String string=Resolve.rtrim(str);
		System.out.println(string);
		s.close();
	}
}
/**
 * 8.定义一个方法,将str所指字符串的正序和反序进行连接,例如 "ok"->"okko"
	String concat(String str);
 */

package com.Oracle.String_1;

import java.util.Scanner;

public class Text08 {
	public static void main(String[] args) {
		System.out.println("请输入一段字符:");
		@SuppressWarnings("resource")
		Scanner s=new Scanner(System.in);
		String str=s.nextLine();
		System.out.println(Resolve.concat(str));
	}
}
/**
 * 9.字符串右移n位,例如   "hello world" 右移两位 后ldhello wor
	要求写一个方法实现此功能,方法的格式是
	String moveToRight(String str,int position)
	str:需要移动的字符串
	p:右移的位数
	
 */


package com.Oracle.String_1;

import java.util.Scanner;

public class Text09 {
	public static void main(String[] args) {
		System.out.println("请输入一段字符:");
		@SuppressWarnings("resource")
		Scanner s=new Scanner(System.in);
		String str=s.nextLine();
		System.out.println("请输入您要右移的位置:");
		int position=s.nextInt();
		str=Resolve.moveToRight(str, position);
		System.out.println(str);
	}
}
//10.求5个字符串中最长的那个,把最长的字符串打印出来

package com.Oracle.String_1;

public class Text10 {
	public static void main(String[] args) {
		String[] s=new String[]{"meet","advent","roost","chineseAndEnglish","program"};
		System.out.println(Resolve.longestString(s));
		
	}
}

/**
 * 11.若可以从一个源字符串中, 找到一个相符的字符串(忽略大小写), 则返回第一个字符的索引位置,否则返回-1。
 */

package com.Oracle.String_1;

public class Text11 {
	public static void main(String[] args) {
		String s1="myyname";
		String s2="Name";
		
		System.out.println(Resolve.stringAt(s1, s2));
		
	}
}
/**
 * 12.判断一个字符串是否是回文
 */

package com.Oracle.String_1;

public class Text12 {

	public static void main(String[] args) {
		String s1="12331";
		System.out.println(Resolve.rotate(s1));
		String s2="12321";
		System.out.println(Resolve.rotate(s2));
	}

}
/**
 * 13.如下字符串,01#张三#20-02#李四#30-03#王五#40。。。。。。,解析每个人分数多少。样式如下:
01 张三 20		02 李四 30		03 王五 40。并且计算总分。
 */

package com.Oracle.String_1;

import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Text13 {
	public static void main(String[] args) {
		Pattern p=Pattern.compile("#[0-9]{1,3}");
		String s="01#张三#20-02#李四#30-03#王五#40";
		String[] str=s.split("-");
		System.out.println(Arrays.toString(str));
		String[] score=new String[str.length];
		int sum=0;
		for(int i=0;i

第二部分:

/**
 * 1.已知字符串:"this is a test of java". 按要求执行以下操作:
   (1) 统计该字符串中字母s出现的次数
   (2) 取出子字符串"test"
   (3) 用多种方式将本字符串复制到一个字符数组Char[] str中.
   (4) 将字符串中每个单词的第一个字母变成大写, 输出到控制台。
   (5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)
   (6) 将本字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的额英文单词,并输出到控制台
 */

package com.Oracle.String_2;

import java.util.Arrays;

public class Text1 {
	public static void main(String[] args) {
		String s="this is a test of java";
//		(1) 统计该字符串中字母s出现的次数
		System.out.println(s.length()-s.replace("s", "").length());
		
//		(2) 取出子字符串"test"
		System.out.println(s.replace("test", ""));
		
//		(3) 用多种方式将本字符串复制到一个字符数组Char[] str中.
//		方法一:
		char[] c1=new char[s.length()];
		for(int i=0;i
/**
 * 2.获取一个字符串在另一个字符串中出现的次数
	例如,获取"kk"在"abkkcdkkefkkskk"中出现的次数
 */

package com.Oracle.String_2;

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Text2 {
	public static void main(String[] args) {
		int n=0;
		@SuppressWarnings("resource")
		Scanner s=new Scanner(System.in);
		System.out.println("请输入一串字符");
		String str=s.nextLine();
		Pattern p=Pattern.compile("[k]{2}");
		Matcher m=p.matcher(str);
		while(m.find()) {
			n++;
		}
		System.out.println("kk在该字符串中出现的次数为:"+n);
	}
}
/**
 * 3.模拟一个trim方法,去除字符串两端的空格
思路:	   1,判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止,结尾处判断空格也是如此。
       2,当开始和结尾都判断到不是空格时,就是要获取的字符串。
 */

package com.Oracle.String_2;

import java.util.Scanner;

public class Text3 {
	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner s=new Scanner(System.in);
		System.out.println("请输入一串字符");
		String str=s.nextLine();
		str=trim(str);
		System.out.println("去掉前后空格后为:"+str);
	}
	public static String trim(String str) {
		while(str.substring(0, 1).equals(" ")) {
			str=str.substring(1,str.length());
		}
		while(str.substring(str.length()-1, str.length()).equals(" ")) {
			str=str.substring(0,str.length()-1);
		}
		return str;
	}
}






你可能感兴趣的:(Javase学习记录,习题)