2022年0701-Com.Java.Basis第六课《主题String》(二)

简介: 2022年0701-Com.Java.Basis第六课《主题String》(二)

10利用reverse(名称)进行字符串的翻转。



运行结果:


11创建一个36开白可变的字符串对象,不包含任何内容,将一个字符串转换为可变内容的字符串



12 StringBuilder append(String str)将指定的字符串附加到此字符序列,StringBuilder reverse()字符串的反转



13题型一。判断字符串有无重复字符.




package Demo16;
import java.util.Scanner;
/**
 * 第五章
 * 5.1 题解:判断字符串有无重复字符
 * @author MZFAITHDREAM
 *
 */
public class 字符串专题一 {
  static boolean checkDifferent(String iniString){
        if (iniString.isEmpty()) {
            return true;
        }
        int []flag = new int[128];
        // 扫描字符串
        for (int i = 0; i < iniString.length(); i++) {
            int c = iniString.charAt(i);
            if (flag[c]>0) {
                return false;
            }else {
                flag[c]++;
            }
        }
        return true;
    }
    public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
  System.out.println("请用户输入你的字符串的内容");
  String  a=sc.next();
        System.out.println("如果有重复返回FALSE");
        System.out.println(checkDifferent(a));
    }
}


14 题型二 巧妙翻转字符串。sBuffer.reverse().toString();


package Demo16;
import java.util.Iterator;
import java.util.Scanner;
/**
 * 字符串的
 * 5.2 题解:巧妙翻转字符串
 * @author MZFAITHDREAM
 *
 */
public class 字符串专题二 {
  public static String reverseString_1 (String iniString){
//      StringBuilder sBuilder = new StringBuilder(iniString)  // 和StringBuffer效果差不多。 
      StringBuffer sBuffer = new StringBuffer(iniString);
      return sBuffer.reverse().toString();
  }
  public static void main(String[] args) {
  Scanner sc=new Scanner(System.in);
  System.out.println("请用户输入你的字符串的内容");
  String  a=sc.next();
        System.out.println("如果有重复返回FALSE");
        System.out.println(reverseString_1(a));
  }
}


15题型三





16 题型四 :替换字符串中的空格。 题型四


package Demo16;
import java.util.Scanner;
/**
 * 字符串三
 * @author MZFAITHDREAM
 * 5.4 实践:替换字符串中的空格
 *
 */
public class 字符串专题四 {
    public static void main(String[] args) {
         System.out.println("解法一:"+replaceSpace("Mr John Smith", 13));
         System.out.println("解法二:"+replaceSpace("Mr John Smith 00 000 00 0000 000000 0000".toCharArray(), 13));
     }
     public static String replaceSpace(String iniString, int length) {
         return iniString.replaceAll("\\s", "%20");
     }
     static String replaceSpace(char[] iniString,int length){
         int count = length;
         for (int i = 0; i <length; i++) {
             if (iniString[i]==' ') {
                 count += 2;
             }
         }
         int p1 = length -1;
         int p2 = count -1;
         while(p1>=0){
             if (iniString[p1]==' ') {
                 iniString[p2--] = '0';
                 iniString[p2--] = '2';
                 iniString[p2--] = '%';
             }else {
                 iniString[p2--] = iniString[p1];
             }
             p1--;
         }
         return new String(iniString, 0, count);
     }
  }


17压缩字符串。题型五


package Demo16;
/**
 * 5.5 题解:压缩字符串
 * @author MZFAITHDREAM
 *
 */
public class 字符串的专题五 {
  public static void main(String[] args) {
  String  res =zipString("aaabccb");
  System.out.println(res);
  }
static String zipString(String src){
    int count = 0; // 记录前一个字符的重复次数
    char last = 0; // 上一个字符
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < src.length(); i++) {
        char charAt = src.charAt(i);
        if (sb.length()==0) {  // 处理第一个字符
            sb.append(charAt);
            count++;
        }else {
            if (last==charAt){  // 和上一个字符相同
                count++;
            }else {              // 和上一个字符不同
                sb.append(count).append(charAt);
                count = 1;
            }
        }
        last = charAt;
    }
    // 考虑最后一个字符的重复次数
    if (count>=1) {
        sb.append(count);
    }
    // 比较新字符串和原字符串
    if (sb.length()>= src.length()) {
        System.out.println("字符串没有变短:"+sb.toString());
        return "原字符串:"+src;
    }
    return sb.toString();
}
}


18判断两字符串的字符集是否相同


package Demo16;
/**
 * 5.6 题解:判断两字符串的字符集是否相同
 * @author MZFAITHDREAM
 *
 */
public class 字符串专题六 {
  public static void main(String[] args) {
         System.out.println(check_1("abc", "ab"));
         System.out.println(check_1("abc", "abc"));
     }
     /**
      * 限制字符串组成的字符为ASCII
      * 解法一
      */
     static boolean check_1(String s1,String s2){
         int[] help1 = new int[128];
         //扫描s1
         for (int i = 0; i < s1.length(); i++) {
           char c = s1.charAt(i);
           if (help1[c] == 0)
             help1[c] = 1;
         }
         int[] help2 = new int[128];
         //扫描s2
         for (int i = 0; i < s2.length(); i++) {
           char c = s2.charAt(i);
           if (help2[c] == 0)
               help2[c] = 1;
         }
         for (int i = 0; i < help2.length; i++) {
             if (help1[i]!=help2[i]) {
                 return false;
             }
         }
         return true;
     }
}
相关文章
|
1月前
|
Java 索引
String字符串常用函数以及示例 JAVA基础
String字符串常用函数以及示例 JAVA基础
|
3天前
|
Java UED
Java中String强转int:一种常见的错误和解决方法
在Java中将非数字字符串转换为整数会导致`NumberFormatException`。要解决这个问题,可以使用`try-catch`捕获异常,正则表达式验证数字格式,或利用异常信息提供错误提示。例如,`Integer.parseInt()`会因遇到非数字字符如`&quot;123abc&quot;`而抛出异常,但通过异常处理或正则`\\d+`可确保安全转换。记得在编程时避免直接强转,以防止程序异常中断。
|
1月前
|
存储 安全 Java
Java中的这些String特性可能需要了解下
Java中的String特性你知道哪些?虽然String很常见,通过源码可以看到String的值传递、字符串表和不可变性。本文基于JDK17说明。
35 1
|
24天前
|
Java 安全 索引
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
【6月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
31 5
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
|
2天前
|
Java 数据处理 Apache
探讨Java中判断String类型为空和null的方法
探讨Java中判断String类型为空和null的方法
9 1
|
2天前
|
存储 SQL 关系型数据库
【BUG记录】Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xA6' for column 'name' at row 1
在MySQL中遇到`Incorrect string value`错误通常是因为尝试插入的字符串包含不被数据库字符集支持的字符,如表情符号。错误根源是MySQL默认的utf8不支持4字节的UTF-8字符(如Emoji)。
12 1
|
25天前
|
存储 Java 测试技术
滚雪球学Java(47):String类教程:如何在Java中使用字符串操作
【6月更文挑战第1天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
23 2
滚雪球学Java(47):String类教程:如何在Java中使用字符串操作
|
5天前
|
Java API 索引
java中String类常用API
java中String类常用API
|
22天前
|
Java
Java中String的用法
Java中String的用法
12 1
|
22天前
|
存储 缓存 安全
Java性能优化(二):Java基础-String对象及其性能优化
在深入探讨了String字符串的性能优化后,我们认识到优化字符串处理对提升系统整体性能的重要性。Java在版本迭代中,通过精心调整成员变量和内存管理机制,不断对String对象进行优化,以更高效地使用内存资源。String对象的不可变性是Java语言设计中的一个关键特性,它不仅确保了字符串的安全性,也为字符串常量池的实现提供了基础。通过减少相同值的字符串对象的重复创建,常量池有效地节约了内存空间。然而,不可变性也带来了挑战。在处理长字符串拼接时,我们需要显式使用类来避免性能下降。
30 1