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.判断输入的用户名和密 ...
随机推荐
- P1666前缀单词
题目传送门点我传送 Ⅰ.字典树+树型DP 非常奇妙的一种解法 第一部分:构建树 先对来的单词读入,插入字典树 然后对于一颗字典树,其实是有很多无用边的,所以我们需要删去一些边 删去非单词节点和非单词节 ...
- python学习之if条件句的使用
if循环 if 条件: 代码块 运行 if else的用法 if elseif else用法 if 条件1: elif 条件2: elif条件3: else:
- Python爬虫丨大众点评数据爬虫教程(2)
大众点评数据爬虫获取教程 --- [SVG映射版本] 前言: 大众点评是一款非常受大众喜爱的一个第三方的美食相关的点评网站.从网站内可以推荐吃喝玩乐优惠信息,提供美食餐厅.酒店旅游.电影票.家居装修. ...
- Linux从error while loading shared libraries: libxxx.so.x 错误的常规解决思路看程序与动态库的关系
出现这类错误的原因通常是动态库无法被加载,本文介绍了常规的解决方案,适用多种情况: 创作不易,如果本文帮到了您: 如果本文帮到了您,请帮忙点个赞
- 这一份MySQL书单,可以帮你搞定90%以上的面试题!
- DNS注入以获取WebShell -asp_POST_DNS_SQLServer_GetWebShell
豹子安全-注入工具-asp_POST_DNS_SQLServer_GetWebShell 注意,是 DNS 注入.这种方式的注入会隐藏很多细节, 对于用户来说是透明的. 请看如下视频(该视频会停留15 ...
- JS作用域和变量提升看这一篇就够了
作用域是JS中一个很基础但是很重要的概念,面试中也经常出现,本文会详细深入的讲解这个概念及其他相关的概念,包括声明提升,块级作用域,作用域链及作用域链延长等问题. 什么是作用域 第一个问题就是我们要弄 ...
- xsser和XSStrike
0x01 xsser xsser是一款用于针对Web应用程序自动化挖掘.利用.报告xss漏洞的框架.kali默认安装. 命令行启动:xsser 图形化界面启动:xsser --gtk 帮助信息:xss ...
- Redis的几种集群方式分析
一 单机版 分析: 无论多少用户,都访问这一台服务器 .服务器一旦挂了,所有用户都无法访问.风险很大,一般不会有人使用. 二 主从模式(master/slaver) 分析: 主从模式中, 无论多少用户 ...
- Spring初学笔记(二):Bean的注入
关于Bean的注入 在上一篇中,已经说到虽然注入确实可以降低类与类之间的耦合,但并没有解决调用者必须知道类的创建方法的问题,也可以说是没有实现调用者与类实现的解耦,我们也提到,为了实现两者的解耦,可以 ...