`
哈达f
  • 浏览: 119601 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

String类操作实例

    博客分类:
  • j2se
阅读更多
class  StringDemo
{
	public static void main(String[] args) 
	{

//		String s = "abc";
//		String s1 = "abc";
//
//		System.out.println(s==s1);
//		String str = "hello java!";
//		System.out.println(str.length());//
//		System.out.println(str.indexOf("ab"));
//		System.out.println(str.replace('k','n'));//hello jnvn!
//		System.out.println(str.toUpperCase());
//		System.out.println("--"+str.substring(3,60)+"--");
//
//		System.out.println(str);

		StringDemo sd = new StringDemo();

		String s = "     abc    ";

		System.out.println("-"+s.trim()+"-");
		System.out.println("-"+sd.myTrim(s)+"-");

		String str = "sdkkffkksfskkkdfskkdfsdkk";
		String subStr = "kk";
		int count = sd.getCount(str,subStr);
		System.out.println("count="+count);


		String maxSub = sd.getMaxSubStr("sdfsabcdedgdfgwkketrfw","rabcdew");
		System.out.println("maxsub:"+maxSub);


		String sortStr = sd.sortString("ca+b05de");
		System.out.println("sortStr:"+sortStr);
	}

	/*
	trim的实现。去除字符串两端的空格。

	思路:
	1,字符串每一个字符都有自己的角标。
		可以定义两个索引变量,判断开始索引位的字符是否是空格,如果是就继续向下判断。开始索引在自增。
		同理,判断结束索引位的字符是否是空格,如果是就继续向前判断。并结束索引自减。
	*/

	public 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);

	}

	/*
	获取一个子串在字符串中出现的次数。
	"sdkkffkksfskkdfskkdfsdkk" "kk"
	
	思路:
	1,判断子串是否在正串中存在,如果存在记录第一次出现的位置。
	2,通过第一次出现的位置,获取剩下的子串。在继续这个动作即可。
	3,使用到了计数器思想。
	*/
	public int getCount(String str,String subStr)
	{
		int count = 0;
		int index = -1;

		while((index = str.indexOf(subStr))!=-1)
		{
			str = str.substring(index+subStr.length());
			count++;
		}
		return count;
	}
		

	/*
	获取两个字符串的最大相同子串。
	"sdfsabcdedgdfgwkketrfw"
	"rabcdew"


	*/

	public String getMaxSubStr(String s1,String s2)
	{
		for(int x=0; x<s2.length(); x++)
		{
			for(int y=0,z=s2.length()-x; z!=s2.length()+1; y++,z++)
			{
				String temp = s2.substring(y,z);
//				System.out.println(temp);
				if(s1.contains(temp))
					return temp;
			}
		}
		return null;
	}

	


	/*
	"cabde" "abcde"对这个字符串的字符进行排序后,生成一个有顺序的字符串。
	思路:
	1,既然有排序,就想到了数组,
	2,将字符串变成字符数组,因为字符都有对应的数字。因为ASCII码表。
	3,对数组进行排序。
	4,将排序后的数组变成字符串。

	*/
	public String sortString(String str)
	{
		char[] arr = getArray(str);
		sort(arr);
		return arrayToString(arr);
	}

	private char[] getArray(String str)
	{
		return  str.toCharArray();
	}
	
	private void sort(char[] arr)
	{
		for(int x=0; x<arr.length; x++)
		{
			for(int y=x+1; y<arr.length; y++)
			{
				if(arr[x]>arr[y])
				{
					swap(arr,x,y);
				}
			}
		}
	}
	private void swap(char[] arr,int x,int y)
	{
		char temp = arr[x];
		arr[x]  = arr[y] ;
		arr[y] = temp;
	}
	
	private String arrayToString(char[] arr)
	{
		return String.copyValueOf(arr);//new String(arr);
	}
}

 

分享到:
评论

相关推荐

    String类方法使用例子

    在Java编程语言中,`String` 类是处理字符串的核心类,它包含了大量的方法,使得对字符串的操作变得简单而高效。本篇文章将详细讲解`String`类的一些常用方法,并通过具体的例子来展示它们的用法。 1. **创建String...

    String类型两种不同实例化方式

    在深入探讨“String类型两种不同实例化方式”的知识点前,我们先明确一下String类在Java中的特殊地位。在Java中,String被设计成不可变(immutable)的对象,这意味着一旦一个String对象被创建,其内容就不能被修改...

    string.format实例

    在本实例中,我们将探讨`String.format()`的基本用法以及如何获取当前程序的运行路径。 首先,`String.format()`方法通过指定的格式化字符串和参数来生成一个新的字符串。格式化字符串通常包含占位符,这些占位符会...

    Java常用类与API-String的实例化与连接操作

    Java常用类与API--String的实例化与连接操作

    有关String类

    关于String类的一些问题 掌握String类的两种实例化方式 掌握String的两种比较操作 深入分析String类两种实例化方式的区别 掌握String的使用特点

    介绍java中String类的方法

    下面我们将详细讨论String类的一些主要特性、实例化方式以及常用方法。 1. **String类的实例创建**: - 直接赋值:`String userName = "Eric";` 这种方式创建的String对象是在常量池中,如果已有相同内容的字符串...

    string类讲解文档

    在C++编程语言中,`std::string` 类是一个非常重要的数据类型,它用于表示和操作文本字符串。这个文档详细地介绍了`std::string`类的各种函数,旨在帮助程序员理解和熟练使用这一强大的工具。以下是对`std::string`...

    c++编写String类代码实例

    下面将详细介绍 C++ 编写 String 类的代码实例,包括普通构造函数、拷贝构造函数、析构函数、赋值函数、重载 + 号和 = 号等操作符。 1. 普通构造函数 在 C++ 中,String 类的普通构造函数用于初始化字符串对象。该...

    基于std_string 封装的string操作类.rar

    "基于std_string 封装的string操作类"就是这样一个实例,它可能是为了增强或定制`std::string`的行为而创建的自定义类。 这个压缩包中的文件"string"很可能包含了实现这些自定义功能的源代码。下面我们将深入探讨...

    String类的intern、split方法

    该方法返回一个字符串对象的内部化引用,由 String 类维护一个初始为空的字符串的对象池,当 intern 方法被调用时,如果对象池中已经包含这一个相等的字符串对象则返回对象池中的实例,否则添加字符串到对象池并返回...

    JAVA中String类常用方法使用实例.docx

    JAVA 中 String 类常用方法使用实例 在 JAVA 中,String 类是一种常用的类,提供了许多实用的方法来操作字符串和数组。在本文中,我们将介绍 String 类中的常用方法,并通过实例来演示每个方法的使用。 Int length...

    String类使用

    这两个类是可变的,允许在同一个实例上进行添加、删除和替换操作,而不会每次都创建新对象。 在处理字符串时,了解正则表达式也很重要。`Pattern`和`Matcher`类可以帮助你进行复杂的模式匹配和替换。例如,`Pattern...

    自己动手编写string类

    - IO操作符不能作为成员函数重载,因为它们不能接受类的实例作为左操作数。 - 算术和关系操作符通常应定义为非成员函数,因为它们不会修改操作对象的状态。 - 下标操作符需要重载两个版本:一个非const版本用于非...

    一个string模板类

    这里的`string`模板类意味着它可以根据不同的数据类型(如`char`、`wchar_t`等)来实例化,提供了更广泛的适用性。 2. **内存管理**:优化通常包括对内存的高效管理。自定义`string`类可能包含了更智能的内存分配...

    !实例研究:字符串类String.rar_字符串类_类String重载

    在这个实例研究中,我们聚焦于`std::string`类的一个关键特性:重载操作符`+=`,这个操作符用于连接两个字符串。 在C++中,重载操作符是一种机制,允许我们为已有的运算符赋予新的含义,以适应不同的数据类型。`+=`...

    string类中英文文档

    在C++编程语言中,`std::string`类是一个非常重要的数据类型,它用于表示和操作文本字符串。这个类在标准库中定义,是C++ Standard Template Library (STL)的一部分,提供了丰富的成员函数和操作符来处理字符串。在...

    通过类名获取类的实例对象

    综上所述,通过类名获取类的实例对象在C++中是一种动态类型操作,可能涉及到反射机制的实现、注册-查找表、线程安全、消息传递等多种技术。虽然C++标准库不直接提供这些功能,但我们可以通过宏、模板元编程、RTTI...

    String实例

    `String`类通常用于处理文本,提供了丰富的操作方法。本篇将深入探讨如何在C库的基础上,手动自定义`String`原型,实现一个基本的`String`类,并涵盖其相关的成员函数。 首先,我们要明确`String`类的基本结构。一...

    STL库string类的模拟实现

    4. string类是basic_string模板类的一个实例,它使用char来实例化basic_string模板类,并用char_traits 和allocator作为basic_string的默认参数(根于更多的模板信息请参考basic_string)。 5. 注意,这个类独立于所...

Global site tag (gtag.js) - Google Analytics