package cn.mmc.day13;
public class StringExcise {
/*
1,模拟一个trim方法,去除字符串两端的空格。
思路:
1,判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止。
结尾处判断空格也是如此。
2,当开始和结尾都判断到不是空格时,就是要获取的字符串。
2,将一个字符串进行反转。将字符串中指定部分进行反转,"abcdefg";abfedcg
思路:
1,曾经学习过对数组的元素进行反转。
2,将字符串变成数组,对数组反转。
3,将反转后的数组变成字符串。
4,只要将或反转的部分的开始和结束位置作为参数传递即可。
*/
/*
3,获取一个字符串在另一个字符串中出现的次数。
"abkkcdkkefkkskk"
思路:
1,定义个计数器。
2,获取kk第一次出现的位置。
3,从第一次出现位置后剩余的字符串中继续获取kk出现的位置。
每获取一次就计数一次。
4,当获取不到时,计数完成。
*/
/*
4,获取两个字符串中最大相同子串。第一个动作:将短的那个串进行长度一次递减的子串打印。
"abcwerthelloyuiodef"
"cvhellobnm"
思路:
1,将短的那个子串按照长度递减的方式获取到。
2,将每获取到的子串去长串中判断是否包含,
如果包含,已经找到!。
*/
public static void sop(String str)
{
System.out.println(str);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = " ab cd ";
/*---------------------------------------------*/
sop("("+s+")");
// s = myTrim(s);
// sop("("+s+")");
sop("("+reverseString(s)+")");
/*---------------------------------------------*/
String str = "kkabkkcdkkefkks";
///sop("count====="+str.split("kk").length);不建议使用。
sop("count="+getSubCount_2(str,"kk"));
/*---------------------------------------------*/
String s1 = "ab";
String s2 = "cvhellobnm";
sop(getMaxSubString(s2,s1));
}
/*
练习四。
*/
public static String getMaxSubString(String s1,String s2)
{
String max = "",min = "";
max = (s1.length()>s2.length())?s1: s2;
min = (max==s1)?s2: s1;
// sop("max="+max+"...min="+min);
for(int x=0; x<min.length(); x++)
{
for(int y=0,z=min.length()-x; z!=min.length()+1; y++,z++)
{
String temp = min.substring(y,z);
sop(temp);
if(max.contains(temp))//if(s1.indexOf(temp)!=-1)
return temp;
}
}
return "";
}
/*
练习三。
*/
public static int getSubCount(String str,String key)
{
int count = 0;
int index = 0;
while((index=str.indexOf(key))!=-1)
{
sop("str="+str);
str = str.substring(index+key.length());
count++;
}
return count;
}
/*
练习三,方式二。
*/
public static int getSubCount_2(String str,String key)
{
int count = 0;
int index = 0;
while((index= str.indexOf(key,index))!=-1)
{
sop("index="+index);
index = index + key.length();
count++;
}
return count;
}
//练习二:将字符串反转。
/*
思路:
1,将字符串变成数组。
2,对数组反转。
3,将数组变成字符串。
*/
public static String reverseString(String s,int start,int end)
{
//字符串变数组。
char[] chs = s.toCharArray();
//反转数组。
reverse(chs,start,end);
//将数组变成字符串。
return new String(chs);
}
public static String reverseString(String s)
{
return reverseString(s,0,s.length());
}
private static void reverse(char[] arr,int x,int y)
{
for(int start=x,end=y-1; start<end ; start++,end--)
{
swap(arr,start,end);
}
}
private static void swap(char[] arr,int x,int y)
{
char temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
//练习一,去除字符串两端空格。
public static String myTrim(String str)
{
int start = 0,end = str.length()-1;
while(start<=end && str.charAt(start)==' ')
start++;
while(start<=end && str.charAt(end)==' ')
end--;
return str.substring(start,end+1);
}
}
分享到:
相关推荐
# 小学三年级语文课程开发——Java设计练习作文方案代码 本课程旨在帮助小学三年级学生提高写作能力,通过Java设计练习作文方案代码的方式,让学生在编程中学会思考和表达。 ## 课程目标 - 学习基本的Java语法和...
第19章 string类与字符串流处理 19.1 简介 19.2 string的赋值与连接 19.3 比较string 19.4 子串 19.5 交换string 19.6 string的特性 19.7 寻找string中的字符 19.8 替换string中的字符 19.9 在string中插入...
第19章 string类与字符串流处理 19.1 简介 19.2 string的赋值与连接 19.3 比较string 19.4 子串 19.5 交换string 19.6 string的特性 19.7 寻找string中的字符 19.8 替换string中的字符 19.9 在string中插入...
字符串计算器 下面是一个 TDD Kata——一个编码、重构和测试优先的练习,你应该每天应用至少 15 分钟(我做 30 分钟)。 开始之前:尽量不要提前阅读。 一次完成一项任务。 诀窍是学会逐步工作。 确保您只测试正确...
3.3.8 String——char串起的项链 58 3.3.9 转义符——看不见写得出 61 3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 ...
3.3.8 String——char串起的项链 58 3.3.9 转义符——看不见写得出 61 3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 ...
2.9 开始使用类和对象、C++string类 2.10 练习 复习题 第3章 控制语句和循环 3.1 关系运算符和逻辑运算符 3.2 if语句 3.2.1 if-else语句 3.2.2 问题分析:在if语句中使用大括号 3.2.3 if-else if-else语句 3.2.4 ...
第10章 创建自定义的游戏实体类——Actor2D 10.1 Actor2D类的前奏 10.2 Actor2D,前端和中央 10.2.1 Actor2D类的支撑类 10.2.2 使Actor2D对象动起来 10.2.3 扩展Actor2D类 10.3 总结 10.4 练习 第11章 实现一个布景...
leetcode 分类 Leetcode_Exercise 将Leetcode中不同种类的题进行分类 数组——Array 字符串——String 数与位——bit_&_num 栈与递归——Stack
2.9 开始使用类和对象、C++string类 2.10 练习 复习题 第3章 控制语句和循环 3.1 关系运算符和逻辑运算符 3.2 if语句 3.2.1 if-else语句 3.2.2 问题分析:在if语句中使用大括号 3.2.3 if-else if-else语句 3.2.4 ...
public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.close(); ArrayList arrayList5 = new ArrayList(); //存放五位十进制数 ArrayL
1.4.4 vector和string 1.5 C++细节 1.5.1 指针 1.5.2 参数传递 1.5.3 返回值传递 1.5.4 引用变量 1.5.5 三大函数:析构函数、复制构造函数和operator= 1.5.6 C风格的数组和...
在文本的转换过程中,用到了isalpha()——是否是字母,toupper()——转换为大写字符 这两个函数(针对string对象的单个字符的操作。类似的操作还有isalnum()——是否是字母或数字,iscntrl()——是否是控制字符...
简易相机用以练习 private SurfaceView surface; private Button shutter,position,back;//快门 private SurfaceHolder holder; private Camera camera;//声明相机 private String filepath = "";//照片保存...
9.5.4 String对象 9.5.5 Number对象 9.5.6 Boolean对象 9.5.7 Function对象 9.5.8 再论关键字with 9.6 应知应会 练习 第10章 浏览器对象模型:BOM 10.1 JavaScript及...
1.4.4 vector和string 1.5 C++细节 1.5.1 指针 1.5.2 参数传递 1.5.3 返回值传递 1.5.4 引用变量 1.5.5 三大函数:析构函数、复制构造函数和operator= 1.5.6 C风格的...
一、案例练习:统计广告ID 需求一:统计每个省份点击广告ID的top3 需求二:统计每个省份每个小时的广告ID的top3 部分数据: 时间戳 省份 城市 用户id 广告id 1562085629599 Hebei Shijiazhuang 564 1...
您可以使用 Endpoints-Viewer 代码,无需构建或重新编译——只需克隆这个 repo 并使用文件。 ###建造 您可以自己重新构建 Endpoints-Viewer 以对其进行调整,或者只是这样您就可以说您做到了。 为此,请按照...
.NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...
string filePath = @"E:\WorkStudio\ntaste\ntaste.Test\datafile\item.csv"; var model = new FileDataModel(filePath); var similarity = new PearsonCorrelationSimilarity(model); var neighborhood = new ...