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.判断输入的用户名和密 ...
随机推荐
- python安装pycrypto库
使用pycharm时安装pycrypto库,一直安装不上,提示安装成功,退出去一看,依旧没有 最后选择了pip安装,但一直报错(Microsoft Visual C++ 9.0 is required ...
- 如何在C#/.NET Core中使用责任链模式
原文:Chain Of Responsbility Pattern In C#/.NET Core 作者:Wade 译者:Lamond Lu 最近我有一个朋友在研究经典的"Gang Of F ...
- A - Aragorn's Story HDU - 3966 树剖裸题
这个题目是一个比较裸的树剖题,很好写. http://acm.hdu.edu.cn/showproblem.php?pid=3966 #include <cstdio> #include ...
- LTE基站开局流程脚本的具体含义
1.全局参数配置MOD ENODEB(修改基站): ENODEBID=2015(基站标识2015), NAME="安职-1"(基站名称), ENBTYPE=DBS3900_LTE( ...
- 如何将项目上传至GitHub?
心血来潮的一天,突然想写点什么哈哈哈哈. 那就写写如何将项目上传到GitHub(矫情,上传个项目还要写个文章) 第一步:下载Git https://git-scm.com/download/win 下 ...
- Spark离线日志分析,连接Spark出现报错
首先,我的代码是这样的 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object ...
- Day_13【IO流】扩展案例2_统计键盘录入字符在指定项目文件中出现的次数
分析以下需求,并用代码实现 键盘录入一个字符(以字符串的形式录入) 判断当前字符在info3.txt当中是否存在 如果不存在, 给出提示 如果存在, 请统计出该字符出现的次数 Info3.txt内容如 ...
- ASP.NET Core中结合枚举和资源文件显示列表
模型类的某些属性以枚举形式出现,我们希望在打开编辑表单时在选择列表中显示枚举值.有时我们想要枚举元素名称,但有时我们想要使用自定义名称甚至翻译. 这个例子演示了如何获取枚举元素名称以选择ASP.NET ...
- 封装组件el-upload通过v-model (一): 上传单张图片
ElementUI 中的el-upload 上传图片 我进行了二次封装.(默认大家都是有一定的vue基础的,细节就不过多的讲了) 在项目中我们主要拿到图片或者其他的一些参数 ,我这里是上传后返回的Gu ...
- chrom浏览器总是将http请求强制转换成https请求
chrome://net-internals/#hsts 中 Delete domain security policies 输入该站点,将将该站点删除一下就OK. 其他浏览器: Chrome 浏览器 ...