当前位置: 首页 > news >正文

黑马程序员_String练习

--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------


1. 去除空格

模拟取出字符串两边的空格


思路:

1.判断字符串第一个字符是不是空格,如果是则继续向后判断,直到不是空格,然后记下此标记

2.逆向判断字符串,也是直到判断不是空格,记下下标

3,然后截取字符串即可



public class ThrowSpace {
 
  public static void main(String[] args) {
    System.out.print("--");
    String str = "  abcdef  ";
    System.out.print(method(str));
    System.out.print("--");
 
  }
 
  public static String method(String str) {
    char[] cs = str.toCharArray();
    int x = 0, y = cs.length - 1;
    for (; x < cs.length; x++) {
      if (str.charAt(x) != ' ') {
         break;
      }
    }
    for (; y >= 0; y--) {
      if (str.charAt(y) != ' ') {
         break;
      }
    }
    return str.substring(x , y + 1);
  }
 
}
结果:
--abcdef--


2. 反转

模拟反转字符串


思路:

1.将字符串转换成字节数组

2.然后利用数组的反转功能,对数组反转

3.然后将反转后的字符数组转成成字符串,返回即可。

4.要是范围反转,你们就先取出那些要反转的,然后反转后,那么就在加上不反转的部分



public class ReverseString {
  public static void main(String[] args) {
    String str="abcdef";
    System.out.println(reverseString(str));
    String str1="123456789";
    System.out.println(reverseString(str1,3,7));
   
  }
  /*完全反转*/
  public static String reverseString(String str){
    char [] chs=str.toCharArray();
    reverse(chs);
    return new String(chs);
  }
  /*指定范围反转*/
  public static String reverseString(String str,int start,int end){
   
    char [] chs=str.toCharArray();
    String s1=new String(chs,0,start);
    String s2=new String(chs,end,chs.length-end);
    String s3=new String(chs,start,end-start);
    char [] newch=s3.toCharArray();
    reverse(newch);
    return s1+new String(newch)+s2;
  }
  /*反转数组*/
  public static void reverse(char [] cs){
    for(int start=0,end=cs.length-1;start<=end;start++,end--){
      swap(cs,start,end);
    }
  }
  /*交换数组中两个字符位置*/
  public static void swap(char [] cs,int start,int end){
     char temp=cs[start];
     cs[start]=cs[end];
     cs[end]=temp;
  }
 
}
 
结果:
fedcba
123765489

3. 计数

计算字符串中指定字符的个数


思路:

1.将字符串转换成数组

2.定义一个计数器,然后再循环查找数组的元素,每查找到一个,那么计数器增加1

3.将计算器返回即可




 public class CountString {
   public static void main(String[]args) {
     Stringstr="abcdjasbabsdaeas";
     System.out.println("str中有"+count(str,'a')+"个字符"+'a');
 
   }
   /*开始查找计数*/
   public static int count(Stringstr,char c){
     char [] cs=str.toCharArray();
     int count=0;
     for(char cc:cs){
        if(cc==c)
          count++;
     }
     return count;
   }
 
}
结果:
str中有5个字符a
 


4.获取字串

获取两个字符串中最大相同子串(按照长度比较)


思路:

1.将短的字符串按照长度递减的方式获取到,

2.将获取到得子串去长串中判断是否包含

3.如果包含则找到。



public class getMaxString {
   public static void main(String[] args) {
     String s1="acbdgyangsdds";
     String s2="dayangqxdw";
        System.out.println(getMaxSUbString(s1,s2));
   }
   /*获取最大相同字符串*/
   public static String getMaxSUbString(String s1,String s2){
if(s2.length()>s1.length()){
        String temp=s1;
        s1=s2;
        s2=temp;
     }
     for(int x=0;x<s2.length();x++){
        for(int y=0,z=s2.length()-x;z!=s2.length()+1;y++,z++){
          String temp=s2.substring(y,z);
          if(s1.contains(temp)){
             return temp;
          }
        }
     }
     return "";
   }
 
}
结果:
yang
 


--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------


相关文章:

  • android下基本json串的生成与解析
  • FileZilla无法连接ftp服务器的解决方案
  • nginx编译安装报错src/os/unix/ngx_files.c: In function 鈔gx_write_chain_to_file?
  • WiFi基本知识
  • nginx配置DocumentRoot
  • 黑马程序员_StringBuffer,包装类
  • 【Android病毒分析报告】 - ZooTiger “集恶意推广、隐私窃取、恶意吸费于一体”...
  • windows下如何用wireshark抓本地回路抓包
  • 知道版本对于出0day后批量攻击dedecms有非常大的帮助,先判断版本再选择相应exp,效率大增...
  • 如何让Windows Server 2008服务器支持被动模式
  • 如何诊断crs 安装时 root.sh 脚本执行错误
  • 站长
  • webshell 匿名用户(入侵者)
  • 中国象棋程序的设计与实现–楚汉棋兵(高级版)(源码)
  • 简单排序
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【笔记】你不知道的JS读书笔记——Promise
  • centos安装java运行环境jdk+tomcat
  • css布局,左右固定中间自适应实现
  • CSS中外联样式表代表的含义
  • flutter的key在widget list的作用以及必要性
  • If…else
  • Javascript 原型链
  • Ruby 2.x 源代码分析:扩展 概述
  • 爱情 北京女病人
  • 开发基于以太坊智能合约的DApp
  • 开源地图数据可视化库——mapnik
  • 聊聊flink的TableFactory
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 整理一些计算机基础知识!
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #数学建模# 线性规划问题的Matlab求解
  • (07)Hive——窗口函数详解
  • (1)Android开发优化---------UI优化
  • (20050108)又读《平凡的世界》
  • (2022 CVPR) Unbiased Teacher v2
  • (3)llvm ir转换过程
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (搬运以学习)flask 上下文的实现
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • ****Linux下Mysql的安装和配置
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • ./configure,make,make install的作用
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 反射的使用
  • .NET 事件模型教程(二)
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net流程开发平台的一些难点(1)
  • @Autowired @Resource @Qualifier的区别
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [Android] Upload package to device fails #2720