Java String 类的应用

一:用java实现:逆序句子:i am a good good boy ==> boy good good a am i

函数原型:
public static String reverseSentence(String str) {

}

import java.util.Scanner;

public class TestDemo3 {
    public static String reverseSentence(String str) {
        String[] s = str.split(" ");
        String[] s2 = new String[s.length];
        for(int i = 0;i < s.length;i ++){
            s2[s.length - i - 1] = s[i];
        }
        String result = "";
        for(int i = 0;i < s2.length;i ++){
            result += (s2[i]+" ");
        }
        return result;
    }
    public static void main(String[]args){
        System.out.println("请输入你的英文句子(结尾不带标点):");
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        System.out.println("逆序后的句子为:");
        System.out.println(reverseSentence(input));
    }
}

打印结果如下:
在这里插入图片描述
这只是运用了 String 类的 split()方法,此题还可以不使用String类的方法,自己实现句子的分割、逆序,此解法仅供参考。

二:用Java实现:将给定的字符串转化(压缩): “aabbccdaa” ==> “a2b2c2d1a2”

函数原型:
public static String stringCompress(String str) {

}

import java.util.Scanner;

public class TestDemo1 {
    public static String stringCompress(String str) {
        int i = 0;
        String result = "";
        while (i < str.length() - 1) {
            if (str.charAt(i) == str.charAt(i + 1)) {
                result += (str.charAt(i) + "2");
                i += 2;
            } else {
                result += (str.charAt(i) + "1");
                i += 1;
            }
        }
        return result;
    }


    public static void main(String[] args) {
        System.out.println("小伙,请输入你的东西:");
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        System.out.println("压缩后的东西为:");
        System.out.println(stringCompress(input));
    }
}

打印结果如下:
在这里插入图片描述
这只是运用了 String 类的 charAt()方法,此题还可以用 String 类的其他方法解决,此解法仅供参考。

三:用Java实现:统计字符串中数字个数:“abc21b416u” ===> 输出5

函数原型:
public static int isNumeric(String str){

}

import java.util.Scanner;

public class TestDemo2 {
    public static int isNumeric(String str){
        int count = 0;
        for(int i = 0;i < str.length();i++){
            if((str.charAt(i)>='0') && (str.charAt(i)<='9')){
                count++;
            }
        }
        return count;
    }
    public static void main(String[]args){
        System.out.println("请输入一个有数字组成的字符串:");
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        System.out.println("该字符串中数字的个数为:");
        System.out.println(isNumeric(input));
    }
}

打印结果如下:
在这里插入图片描述
这只是运用了 String 类的 charAt()方法,此题还可以用 String 类的其他方法解决,此解法仅供参考。

四:用Java实现:将一个字符串从左开始第几位之前的进行旋转:将"abcdef"第2位之前(a为0号位置)进行旋转 ===> “cdefab”

函数原型:
public static void leftRotateString(String str,int n){

}

import java.util.Scanner;

public class TestDemo4 {
    public static void leftRotateString(String str,int n){
        if(n < 0){
            System.out.println("请输入大于等于0位置!");
        }else {
            String s = "";
            for (int i = 0; i < n; i++) {
                s += str.charAt(i);
            }
            String s2 = "";
            for(int i = n;i < str.length();i++ ){
                s2 += str.charAt(i);
            }
            System.out.println(s2+s);
        }

    }
    public static void main(String[]args){
        System.out.println("请输入你要左旋的字符串和左旋的位置:");
        Scanner scanner = new Scanner(System.in);
        String input1 = scanner.next();
        int input2 = scanner.nextInt();
        System.out.println("左旋后的字符串为:");
        leftRotateString(input1,input2);
    }
}

打印结果如下:
在这里插入图片描述
这只是运用了 String 类的 charAt()方法和简单的 “+” 拼接,此题还可以用 String 类的其他方法解决,此解法仅供参考。

猜你喜欢

转载自blog.csdn.net/wener521/article/details/89252041
今日推荐