一:用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 类的其他方法解决,此解法仅供参考。