Javase—String类习题

来源:互联网 发布:linux系统常用命令大全 编辑:程序博客网 时间:2024/06/08 23:17

/** * 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<str.length();i++) {//System.out.println(str.charAt(i));//}int n=0;//字符的个数int varies=0;//字符的种类for(char c=65;c<=90&&c>=65 || c<=122&&c>=97;c++) {n=0;for(int i=0;i<str.length();i++) {if(str.charAt(i)==c) {n++;//System.out.println(n);}if(c==90) {c=97;}}if(n!=0) {System.out.println(c+":"+n);varies++;}}System.out.println("共有"+varies+"种字符");s.close();}}
以下代码中需要用到的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<s.length();i++) {//c[s.length()-1-i]=s.charAt(i);//}//s=new String(c);//return s;}//将字符串转为存储字符的数组public static char[] toChar(String s) {char[] c=new char[s.length()];for(int i=0;i<s.length();i++) {c[i]=s.charAt(i);}return c;}/** * 将字符串右移n位 * @param str * @param position * @return */public static String moveToRight(String str,int position) {String right=str.substring(str.length()-position,str.length());String left=str.substring(0,str.length()-position);return right+left;}//public static String moveToRight(String str,int position) {//char[] c=Resolve.toChar(str);//char[] move=new char[position];////储存从数组末尾移动到前端的元素//int k=0;//for(int i=c.length-position;i<c.length;i++) {//move[k++]=c[i];//}////将数组中的元素向右移position位,直至到达数组最后一个元素//for(int i=c.length-1;i-position>=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;i<s.length;i++) {longest=longest.length()>s[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 张三 2002 李四 3003 王五 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<score.length;i++) {Matcher m=p.matcher(str[i]);@SuppressWarnings("unused")boolean b=m.find();score[i]=m.group();score[i]=m.group().substring(1, score[i].length());//System.out.println(score[i]);//System.out.println(Integer.valueOf(score[i]));sum+=Integer.valueOf(score[i]);}System.out.println("总分为:"+sum);}}

第二部分:

/** * 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<c1.length;i++) {c1[i]=s.charAt(i);}System.out.println(Arrays.toString(c1));//方法二:char[] c2=s.toCharArray();System.out.println(Arrays.toString(c2));//(4) 将字符串中每个单词的第一个字母变成大写, 输出到控制台。c1[0]=Character.toUpperCase(c1[0]);for(int i=0;i<c1.length;i++) {//System.out.println(s.substring(i, i+1));if(s.substring(i, i+1).equals(" ")) {//System.out.println(s.substring(i+1, i+2));//System.out.println(s.substring(i+1, i+2).toUpperCase());c1[i+1]=Character.toUpperCase(c1[i+1]);}}String str=new String(c1);System.out.println(str);//(5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)//方法一:StringBuffer strb=new StringBuffer(s);strb=strb.reverse();System.out.println(strb);//方法二for(int i=0;i<c1.length;i++) {c2[i]=c1[c1.length-i-1];}String string=new String(c2);System.out.println(string);//(6) 将本字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的额英文单词,并输出到控制台String[] st=s.split(" ");System.out.println(Arrays.toString(st));}}
/** * 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;}}






原创粉丝点击