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;
     }
}
相关文章
|
3月前
|
Java
【Java基础面试三十一】、String a = “abc“; ,说一下这个过程会创建什么,放在哪里?
这篇文章解释了在Java中声明`String a = "abc";`时,JVM会检查常量池中是否存在"abc"字符串,若不存在则存入常量池,然后引用常量池中的"abc"给变量a。
|
3月前
|
Java
【Java基础面试三十二】、new String(“abc“) 是去了哪里,仅仅是在堆里面吗?
这篇文章解释了Java中使用`new String("abc")`时,JVM会将字符串直接量"abc"存入常量池,并在堆内存中创建一个新的String对象,该对象会指向常量池中的字符串直接量。
|
2月前
|
Java 索引
java基础(13)String类
本文介绍了Java中String类的多种操作方法,包括字符串拼接、获取长度、去除空格、替换、截取、分割、比较和查找字符等。
35 0
java基础(13)String类
|
6天前
|
Java 测试技术 开发者
Java零基础-indexOf(String str)详解!
【10月更文挑战第14天】Java零基础教学篇,手把手实践教学!
94 65
|
3月前
|
Kubernetes jenkins 持续交付
从代码到k8s部署应有尽有系列-java源码之String详解
本文详细介绍了一个基于 `gitlab + jenkins + harbor + k8s` 的自动化部署环境搭建流程。其中,`gitlab` 用于代码托管和 CI,`jenkins` 负责 CD 发布,`harbor` 作为镜像仓库,而 `k8s` 则用于运行服务。文章具体介绍了每项工具的部署步骤,并提供了详细的配置信息和示例代码。此外,还特别指出中间件(如 MySQL、Redis 等)应部署在 K8s 之外,以确保服务稳定性和独立性。通过本文,读者可以学习如何在本地环境中搭建一套完整的自动化部署系统。
67 0
|
7天前
|
Java 测试技术 开发者
Java零基础-indexOf(String str)详解!
【10月更文挑战第13天】Java零基础教学篇,手把手实践教学!
28 1
|
11天前
|
安全 Java 测试技术
Java零基础-StringBuffer 类详解
【10月更文挑战第9天】Java零基础教学篇,手把手实践教学!
16 2
|
24天前
|
IDE Java 开发工具
Java“未封闭的 String 表达式”怎么解决
要解决Java中的“未封闭的 String 表示”问题,需检查并修正字符串字面量,确保每个字符串被正确地用双引号括起来。若字符串跨越多行,可使用字符串连接操作符(+)或引入文本块(JDK 13 及以上版本)。这能帮助避免语法错误,并使代码更整洁易读。
|
22天前
|
存储 安全 Java
【一步一步了解Java系列】:认识String类
【一步一步了解Java系列】:认识String类
22 2
|
2月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)