String类练习
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类练习的更多相关文章
- 标准库String类
下面的程序并没有把String类的所有成员方法实现,只参考教程写了大部分重要的成员函数. [cpp] view plain copy #include<iostream> #include ...
- 自己实现简单的string类
1.前言 最近看了下<C++Primer>,觉得受益匪浅.不过纸上得来终觉浅,觉知此事须躬行.今天看了类类型,书中简单实现了String类,自己以前也学过C++,不过说来惭愧,以前都是用C ...
- C++ string类的实现
c++中string类的实现 今天面试被考到了, 全给忘记了!!! //string类的实现 #include <iostream> #include <string.h> ...
- String类的功能
String类 标红的为较少出现的 1.判断功能 boolean equals(Object obj) :比较字符串内容是否相同,区分大小写 boolean equalsIg ...
- java基础复习:final,static,以及String类
2.final 1)为啥String是final修饰的呢? 自己答: 答案: 主要是为了“效率” 和 “安全性” 的缘故.若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所 ...
- String类和StringBuffer类的区别
首先,String和StringBuffer主要有2个区别: (1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringB ...
- 05_整理String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明
Question: 整理String类的Length().charAt(). getChars().replace(). toUpperCase(). toLowerCase().trim().toC ...
- 标准C++中的string类的用法总结
标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...
- String类常用方法
1.String类的特点,字符串一旦被初始化就不会被改变. 2.String对象定义的两种方式 ①String s = "affdf";这种定义方式是在字符串常量池中创建一个Str ...
- 运用String类实现一个模拟用户登录程序
package Test; import java.util.Scanner; // 模拟用户登录程序 // 思路: // 1.用两个String类分别接收用户名和密码 // 2.判断输入的用户名和密 ...
随机推荐
- Spring依赖注入—@Resource注解使用
1.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowire ...
- linux关于suid提权笔记
suid全称是Set owner User ID up on execution.这是Linux给可执行文件的一个属性,上述情况下,普通用户之所以也可以使用ping命令,原因就在我们给ping这个可执 ...
- C# 判断文件格式的一些总结
前提概述: 项目中 经常会有上传图片的地方 有的时候需要对图片类型做一些要求 这个时候就需要一些判断 虽然前段上传的时候可以去做类型的限制 或者后台接受的时候从file的type 中获取图 ...
- FOC中电流环调试的宝贵经验总结(有理有据+全盘拖出)
你是否经历过一个人独自摸索前进磕磕碰碰最终体无完肤,然后将胜利的旗帜插到山顶的时刻,如果有,本文也许能帮你在调试FOC电流环的时候给你带来一些帮助和思路. 如果本文帮到了您,请帮忙点个赞
- hex文件格式总结
hex文件格式总结 文章目录 hex文件格式总结 什么是hex文件? 文件格式 指令类型(Record type) 校验和 :04 02B0 00 92020008 AE :04 0000 05 08 ...
- [csu1508 地图的四着色]二分图染色
抽象后的题意:给一个不超过30个点的图,A从中选不超过5个点涂红绿两种颜色,B用黑白两种颜色把剩下的涂完,任意一条边两端的颜色不同,求每种颜色至少用涂一次的方案数 思路:枚举A涂的点的集合,将原图分成 ...
- (电脑连不上热点)电脑连上了WIFI,但是显示网络不可用怎么办?
假如WIFI没有问题的话,那这个就是电脑网络堵塞的问题了,下面是解决的办法: 情况一 1.首先win键+R打开运行框,输入cmd 2.然后在命令行输入 ipconfig -release ipconf ...
- angular前端框架简单小案例
一.angular表达式 <head> <meta charset="UTF-8"> <title>Title</title> &l ...
- OpenCv 学习安装(一)
1.opencv版本:opencv-3.4.2-vc14_vc15.exe2.设置环境变量path: E:\opencv\opencv\build\x64\vc14\bin3.用VS2015新建一个w ...
- Java openrasp学习记录(一)
前言: 最近一直在做学校实验室安排的项目,太惨了,没多少时间学习新知识,不过rasp还是要挤挤时间学的,先从小例子的分析开始,了解rasp的基本设计思路,后面详细阅读openrasp的源码进行学习!欢 ...