java字符串练习

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

    package cn.edu.nefu.pjt01;
    
    public class Test01 {
        public static void main(String[] args) {
            String str = "卡巴斯基#杀毒软件#免费版#俄罗斯#";
            String str1[];
            str1 = str.split("#");
            for (int i=0;i<str1.length;i++){
                System.out.println(str1[i]);
            }
        }
        
    }
  2. "那车水马龙的人世间,那样地来 那样地去,太匆忙"最后一次出现"那"的位置。

    package cn.edu.nefu.pjt01;
    
    public class Test02 {
        public static void main(String[] args) {
            String str = "那车水马龙的人世间,那样地来 那样地去,太匆忙";
            int ch = str.lastIndexOf("那");
            System.out.println(ch);
        }
    }
  3. 判断输入的字符串是否是 .java 结束 
    提示:public boolean endsWith(String suffix) (查帮助,查此方法的说明) 

    package cn.edu.nefu.pjt01;
    
    public class Test03 {
        public static void main(String[] args) {
            String str = "Test03.java";
            String str2 = "sdagfdg";
            boolean ch1 = str.endsWith(".java");
            System.out.println(ch1);
            boolean ch2 = str2.endsWith(".java");
            System.out.println(ch2);
        }
    }
  4. //4.有一身份证号,判断此为男还是女,基于此方法,写一个算法,判断一个身份证号为男还是女。(身份证分15位和18位)

    //4.有一身份证号,判断此为男还是女,基于此方法,写一个算法,判断一个身份证号为男还是女。(身份证分15位和18位)
    package cn.edu.nefu.pjt01;
    
    import java.util.Scanner;
    
    public class Test04 {
    
    	public static void main(String[] args) {
    			System.out.println("请输入身份证号:");
    			Scanner s = new Scanner(System.in);
    			String str = s.nextLine();
    			int ch ;
    			if(str.length()==15||str.length()==18){
    				if(str.length()==15){
    					ch = str.charAt(14);//15位身份证第15位为性别
    				}else{
    					ch = str.charAt(16);//18位身份证第18位为性别
    				}
    				if(ch%2==0){
    					System.out.println("女");
    				}else{
    					System.out.println("男");
    				}
    			}else{
    				System.out.println("您输入的身份证号有误!");
    				main(args);
    			}
    	
    	}
    
    }
    
  5. //5.有如下格式的字符串name-age-sex-address,解析出姓名,年龄等信息。

    package cn.edu.nefu.pjt01;
    
    public class Test05 {
        
        public static void info(String str){
            String string[] = str.split("-");
             for (int i = 0;i<string.length;i++){
                 System.out.println(string[i]);
             }
        }
    
        public static void main(String[] args) {
            String str = "name-age-sex-address";
            info(str);
    
        }
    
    }
    
  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 cn.edu.nefu.pjt01;
    
    public class Test06 {
        static void printCharInfo(String str){
            char [] a=new char[100];
            int [] b=new int[100];
            char [] ch=str.toCharArray();
            int index=0;
            for(int i=0;i<str.length();i++){
                if(i!=0)
                    for(int j=0;j<index;j++){
                        if(a[j]==ch[i]){
                            b[j]++;
                            break;
                        }else if(j==index-1){
                            a[index++]=ch[i];
                            b[index-1]=1;
                            break;
                        }
                    }
                else{
                    a[index++]=ch[i];
                    b[index-1]=1;
                }
            }
            for(int i=0;i<index;i++){
                System.out.println(a[i]+" :"+b[i]);
            }
        }
    
        public static void main(String[] args) {
            String str = "apple is a apple.";
            printCharInfo(str);
        }
    
    }
  7. 定义一个方法,用来去掉字符串右边的空格
      String rtrim(String str)

    package cn.edu.nefu.pjt01;
    
    public class Test07 {
        public static String rtrim(String str){
            str = new StringBuffer(str).reverse().toString();
            int index = 0;
            for(int i=0;i<str.length();i++){
                if(str.charAt(i)!=' '){
                    break;
                }
                index ++;
            }
            str = str.substring(index);
            return new StringBuffer(str).reverse().toString();
        }
        public static void main(String[] args) {
            String str1 = "     sdk   fakl    ";
            String str2 = "dskafh   ";
            System.out.println(rtrim(str1));
            System.out.println(rtrim(str2));
        }
        
        
    }
  8. 定义一个方法,将str所指字符串的正序和反序进行连接,例如 "ok"->"okko"
     String concat(String str);

    package cn.edu.nefu.pjt01;
    
    public class Test08 {
        public static String concat(String str){
            String rts = new StringBuffer(str).reverse().toString();
            return str+rts;
        }
        
        public static void main(String[] args) {
            String str1 = "ok";
            System.out.println(concat(str1));
            String str2 = "asEgtr";
            System.out.println(concat(str2));
        }
    }
  9. 字符串右移n位,例如   "hello world" 右移两位 后ldhello wor
        要求写一个方法实现此功能,方法的格式是
        String moveToRight(String str,int position)
        str:需要移动的字符串
        p:右移的位数

    package cn.edu.nefu.pjt01;
    
    public class Test09 {
        
        public static String moveToRight(String str,int position){
            String left = str.substring(0,str.length()-position);
            String right = str.substring(str.length()-position);
            return right+left;
        }
    
        public static void main(String[] args) {
            String str = "hello world";
            System.out.println(moveToRight(str,2));
    
        }
    
    }


     

  10. 求5个字符串中最长的那个,把最长的字符串打印出来
     

    package cn.edu.nefu.pjt01;
    
    public class Test10 {
        
        public static String Longest(String str[]){
            String longest = "";//空字符串
            for(int i=0;i<str.length;i++){
                if(str[i].length()>longest.length()){
                    longest = str[i];
                }
            }
            return longest;
        }
        
        public static void main(String[] args) {
            String str1 = "afaegte";
            String str2 = "sadlkfjoei";
            String str3 = "sjfaak";
            String str4 = "sadf";
            String str5 = "a;fj;a;";
            String str [] = {str1,str2,str3,str4,str5};
            System.out.println(Longest(str));
            
        }
    
    }
    
  11. 若可以从一个源字符串中, 找到一个相同的字符串(忽略大小写), 则返回第一个字符的索引位置,
     否则返回-1。
    int stringAt(String str,String subStr)

    package cn.edu.nefu.pjt01;
    
    public class Test11 {
        
        public static int stringAt(String str,String subStr){
            if(str.toLowerCase().contains(subStr.toLowerCase())){
                return str.toLowerCase().indexOf(subStr.toLowerCase());
            }else{
                return -1;
            }
            
        }
        
        public static void main(String[] args) {
            String str = "asdgafHellosldfld";
            String subStr = "hello";
            System.out.println(stringAt(str,subStr));
            String subStr2 = "fklashf";
            System.out.println(stringAt(str,subStr2));
        }
    
    }
    
  12. 判断一个字符串是否是回文数

    package cn.edu.nefu.pjt01;
    
    public class Test12 {
        public static void palindromic(String str){
            if(str.equals(new StringBuffer(str).reverse().toString())){
                System.out.println("字符串"+str+"是回文数");
            }else{
                System.out.println("字符串"+str+"不是回文数");
            }
            
        }
        
        public static void main(String[] args) {
            String str = "12321";
            palindromic(str);
            String str2 = "dsad";
            palindromic(str2);
        }
    }
  13. 如下字符串,01#张三#20-02#李四#30-03#王五#40。。。。。。,解析每个人分数多少。样式如下:
    01 张三 20
    02 李四 30
    03 王五 40。并且计算总分。

    package cn.edu.nefu.pjt01;
    
    public class Test13 {
        
        public static void grade(String str){
            String string[] = str.split("-");
            for (int i=0;i<string.length;i++){
                string[i] = string[i].replace("#"," ");
                System.out.println(string[i]);
            }
        }
    
        public static void main(String[] args) {
            String str = "01#张三#20-02#李四#30-03#王五#40";
            grade(str);
        }
    
    }
    

猜你喜欢

转载自blog.csdn.net/sunshinecollege/article/details/81543328