1.模拟一个trim方法,去除字符串两端的空格

2.将一个字符串进行反转。将字符串中指定部分进行反转

3.获取一个字符串在另一个字符串中出现的次数

4.获取两个字符串中最大相同子串

5.对字符串中字符进行自然顺序排序

StringDemo 
package com.ff.string;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; public class StringDemo {
public static void main(String[] args) {
String str = " abd de ";
String str1 = myTrim(str);
System.out.println(str1);// abd de String str2 = "abcdefg";
String str3 = myReverseString1(str2, 2, 5);// abfedcg
String str4 = myReverseString2(str2, 2, 5);// abfedcgs
System.out.println(str3 + "," + str4);// abfedcg,abfedcg
System.out.println(str3 + str4);// abfedcgabfedcg String str5 = "abkkcadkabkebfkabkskab";
String str6 = "ab";
System.out.println(getTime(str5, str6));// List<String> str7 = getMaxSubString("abcwerthelloyuiomdef", "cvhellobnyuiom");
System.out.println(str7);// [hello, yuiom] String str8 = "adfagdgdada";
String str9 = sort(str8);
System.out.println(str9);// aaaaddddfgg
} // 5.对字符串中字符进行自然顺序排序。
// 提示:1)字符串变成字符数组。
// 2)对数组排序,选择,冒泡,Arrays.sort();
// 3)将排序后的数组变成字符串。
public static String sort(String str) {
char[] c = str.toCharArray();// 转换为数组
Arrays.sort(c);
return new String(c);
} // 4.获取两个字符串中最大相同子串。比如: str1 = "abcwerthelloyuiodef“;str2 = "cvhellobnm"
// 提示:将短的那个串进行长度依次递减的子串与较长的串比较。
public static List<String> getMaxSubString(String str1, String str2) {
String maxStr = (str1.length() > str2.length()) ? str1 : str2;
String minStr = (str1.length() < str2.length()) ? str1 : str2;
int len = minStr.length();
List<String> list = new ArrayList<String>();
for (int i = 0; i < len; i++) {
for (int x = 0, y = len - i; y <= len; x++, y++) {
String str = minStr.substring(x, y);
if (maxStr.contains(str)) {
list.add(str);
}
}
if (list.size() != 0) {
return list;
}
}
return null;
} // 3.获取一个字符串在另一个字符串中出现的次数。比如:获取“ ab”在 "abkkcadkabkebfkabkskab"中出现的次数
// str2在str1中出现的次数
public static int getTime(String str1, String str2) {
int count = 0;
int len;
while ((len = str1.indexOf(str2)) != -1) {
count++;
str1 = str1.substring(len + str2.length());
}
return count;
} // 2.将一个字符串进行反转。将字符串中指定部分进行反转。
// 比如将"abcdefg"反转为"abfedcg"
// 方法二: 将abcdefg分为三部分,ab cdef g,前面的不变,中间的从后面一个个加进来,再加上最后一部分
public static String myReverseString2(String str, int start, int end) {
String str1 = str.substring(0, start);// 截取的第一部分
for (int i = end; i >= start; i--) {
char c = str.charAt(i);
str1 += c;// 加上一个个从后往前字符
}
str1 += str.substring(end + 1);// 加上后一部分
return str1;
} // 方法一:使用数组的方式转换
public static String myReverseString1(String str, int start, int end) {
char[] c = str.toCharArray();// 字符串转为数组
return reverseArray(c, start, end);
} private static String reverseArray(char[] c, int start, int end) {
for (int i = start, j = end; i < j; i++, j--) {
char temp = c[i];
c[i] = c[j];
c[j] = temp;
}
// 字符数组--->字符串
return new String(c);
} // 1.模拟一个trim方法,去除字符串两端的空格
public static String myTrim(String str) {
int start = 0;
int end = str.length() - 1;
while (start < end && str.charAt(start) == ' ') {
start++;
}
while (start < end && str.charAt(end) == ' ') {
end--;
}
return str.substring(start, end + 1);// 左闭右开所以得+1
}
}

String类练习的更多相关文章

  1. 标准库String类

    下面的程序并没有把String类的所有成员方法实现,只参考教程写了大部分重要的成员函数. [cpp] view plain copy #include<iostream> #include ...

  2. 自己实现简单的string类

    1.前言 最近看了下<C++Primer>,觉得受益匪浅.不过纸上得来终觉浅,觉知此事须躬行.今天看了类类型,书中简单实现了String类,自己以前也学过C++,不过说来惭愧,以前都是用C ...

  3. C++ string类的实现

    c++中string类的实现 今天面试被考到了, 全给忘记了!!!   //string类的实现 #include <iostream> #include <string.h> ...

  4. String类的功能

    String类              标红的为较少出现的 1.判断功能 boolean equals(Object obj) :比较字符串内容是否相同,区分大小写 boolean equalsIg ...

  5. java基础复习:final,static,以及String类

    2.final 1)为啥String是final修饰的呢? 自己答: 答案: 主要是为了“效率” 和 “安全性” 的缘故.若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所 ...

  6. String类和StringBuffer类的区别

    首先,String和StringBuffer主要有2个区别: (1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringB ...

  7. 05_整理String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明

    Question: 整理String类的Length().charAt(). getChars().replace(). toUpperCase(). toLowerCase().trim().toC ...

  8. 标准C++中的string类的用法总结

    标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...

  9. String类常用方法

    1.String类的特点,字符串一旦被初始化就不会被改变. 2.String对象定义的两种方式 ①String s = "affdf";这种定义方式是在字符串常量池中创建一个Str ...

  10. 运用String类实现一个模拟用户登录程序

    package Test; import java.util.Scanner; // 模拟用户登录程序 // 思路: // 1.用两个String类分别接收用户名和密码 // 2.判断输入的用户名和密 ...

随机推荐

  1. Prometheus monitor RabbitMQ

    Install docker-compose sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2 ...

  2. thinkphp5.x系列 RCE总结

    Thinkphp  MVC开发模式 执行流程: 首先发起请求->开始路由检测->获取pathinfo信息->路由匹配->开始路由解析->获得模块.控制器.操作方法调度信息 ...

  3. query 线段树 + 区间排序

    https://nanti.jisuanke.com/t/41391 这个题目没有很难想,比较暴力,但是要会算复杂度,不会算复杂度,就会觉得自己的算法会超时,实际上不会. 这个题目就是直接暴力求出每一 ...

  4. [C#]基础——注意事项

    1. 静态类必须直接继承Object 2. 静态类不能实现接口,不能继承其他类(除了Object) 3.静态类中不能有实体方法 4.实体类中可以有静态方法,使用同 静态类 5.readonly属性可以 ...

  5. 201771010113-李婷华 实验一 软件工程准备-<软件工程的相关了解>

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE 这个作业要求链接 https://www.cnblogs.com/nwnu- ...

  6. 手把手教你进行Scrapy中item类的实例化操作

    接下来我们将在爬虫主体文件中对Item的值进行填充. 1.首先在爬虫主体文件中将Item模块导入进来,如下图所示. 2.第一步的意思是说将items.py中的ArticleItem类导入到爬虫主体文件 ...

  7. 【Hadoop离线基础总结】完全分布式环境搭建

    完全分布式环境搭建 服务规划 适用于工作当中正式环境搭建 安装步骤 第一步:安装包解压 停止之前的Hadoop集群的所有服务,并删除所有机器的Hadoop安装包,然后重新解压Hadoop压缩包 三台机 ...

  8. DP之石子堆合并问题

    相邻 环形 总结 (1)相邻:在一个圆形操场的四周摆放着n堆石子(n<= 100),现要将石子有次序地合并成一堆.规定每次只能选取相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得 ...

  9. Linux 面试最常问的十个问题

    如果你要去面试一个Linux系统运维工程师的职位,下面这十个最常见的问题一定要会,否则你的面试可能就危险了.这些都是比较基本的问题,大家要理解,不能光死记硬背. 1.如何查看系统内核的版本 这里有两种 ...

  10. Office 2016 英文版(VOL版)下载

    Office 2016 英文版(大客户版)下载磁力链接: 1.专业版(含project.visio) ProPlus, Project Pro, Visio Pro (x86-x64) magnet: ...