`

String类——练习

 
阅读更多
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设计练习作文方案代码.docx

    # 小学三年级语文课程开发——Java设计练习作文方案代码 本课程旨在帮助小学三年级学生提高写作能力,通过Java设计练习作文方案代码的方式,让学生在编程中学会思考和表达。 ## 课程目标 - 学习基本的Java语法和...

    C++大学教程,一本适合初学者的入门教材(part1)

    第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中插入...

    C++大学教程,一本适合初学者的入门教材(part2)

    第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中插入...

    string-calculator-kata:通过 TDDing 字符串计算器 Kata 练习 Java

    字符串计算器 下面是一个 TDD Kata——一个编码、重构和测试优先的练习,你应该每天应用至少 15 分钟(我做 30 分钟)。 开始之前:尽量不要提前阅读。 一次完成一项任务。 诀窍是学会逐步工作。 确保您只测试正确...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    3.3.8 String——char串起的项链 58 3.3.9 转义符——看不见写得出 61 3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    3.3.8 String——char串起的项链 58 3.3.9 转义符——看不见写得出 61 3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 ...

    现代C++程序设计

    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 ...

    Java2游戏编程.pdf

    第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_练习

    leetcode 分类 Leetcode_Exercise 将Leetcode中不同种类的题进行分类 数组——Array 字符串——String 数与位——bit_&_num 栈与递归——Stack

    【全新正版】现代C++程序设计(原书第2版)

    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 ...

    蓝桥杯试题 基础练习 BASIC-9 特殊回文数——冲刺蓝桥杯第五天

    public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.close(); ArrayList arrayList5 = new ArrayList(); //存放五位十进制数 ArrayL

    数据结构与算法分析C描述第三版

     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风格的数组和...

    用c++实现将文本每个单词首字母转换为大写

    在文本的转换过程中,用到了isalpha()——是否是字母,toupper()——转换为大写字符 这两个函数(针对string对象的单个字符的操作。类似的操作还有isalnum()——是否是字母或数字,iscntrl()——是否是控制字符...

    简易相机练习

    简易相机用以练习 private SurfaceView surface; private Button shutter,position,back;//快门 private SurfaceHolder holder; private Camera camera;//声明相机 private String filepath = "";//照片保存...

    JavaScript详解(第2版)

     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风格的...

    spark代码笔记02——广告top3、基站停留时间

    一、案例练习:统计广告ID  需求一:统计每个省份点击广告ID的top3  需求二:统计每个省份每个小时的广告ID的top3 部分数据: 时间戳 省份 城市 用户id 广告id  1562085629599 Hebei Shijiazhuang 564 1...

    Endpoints-Viewer:一个简单的应用程序,可以在一个地方查看restapi的所有端点

    您可以使用 Endpoints-Viewer 代码,无需构建或重新编译——只需克隆这个 repo 并使用文件。 ###建造 您可以自己重新构建 Endpoints-Viewer 以对其进行调整,或者只是这样您就可以说您做到了。 为此,请按照...

    asp.net知识库

    .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...

    ntaste:.Net协同过滤推荐引擎——移植自java版的apache mahout taste

    string filePath = @"E:\WorkStudio\ntaste\ntaste.Test\datafile\item.csv"; var model = new FileDataModel(filePath); var similarity = new PearsonCorrelationSimilarity(model); var neighborhood = new ...

Global site tag (gtag.js) - Google Analytics