`

String类型的一些操作

    博客分类:
  • Java
阅读更多

下面是关于字符串的一些操作,这些都是在一本C++的书上看到的,然后就用java实现了一下。

 

public class StringOperation 
{
	public static void main(String[] args)
	{
		String srcstr = "abcdefg";
		String substr = "cdef";
		
		String str = "I am from shandong";
		String token = "from";
		String isrevstr = "abcdcba";
		
		String str1 = "abcdefg aeiou";
		String str2 = "acdefgae";
		String str3 = "abccdefcfgcsd";
		String str4 = "123456789";
		String str5 = "bei北京欢迎你jing我爱你中国China";
		
		System.out.println(Search(srcstr, substr));
		System.out.println(Reverse(str));
		System.out.println(Reverse2(str));
		System.out.println(Reverse(str, token));
		System.out.println(isRevStr(isrevstr));
		System.out.println(Compare(srcstr, substr));
		System.out.println(getCommonStr(str1, str2));
		System.out.println(DeleteStr(str3, 3, 3));
		System.out.println(DeleteStr(str3, 'c'));
		System.out.println(RightMove(str4, 6));
		System.out.println(LeftMove(str4, 6));
		System.out.println(getChineseNum(str5));
	}
	
	public static int Search(String srcstr, String substr)
	{
		int index = -1;
		
		index = srcstr.indexOf(substr);
		
		return index;
	}
	
	public static String Reverse(String str)
	{
		String[] temp = str.split(" ");
		
		StringBuffer sb = new StringBuffer();
		
		for(int i=temp.length-1; i>=0; i--)
			sb.append(temp[i] + " ");
		
		return sb.toString();
	}
	
	public static String Reverse2(String str)
	{
		StringBuffer sb = new StringBuffer();
		
		sb.append(str);
		
		return sb.reverse().toString();
	}
	
	public static String Reverse(String str, String token)
	{
		StringBuffer sb = new StringBuffer();
		StringBuffer temp = new StringBuffer();
		
		sb.append(str.replaceFirst(token, temp.append(token).reverse().toString()));
		
		return sb.reverse().toString();
	}
	
	public static boolean isRevStr(String str)
	{
		boolean flag = true;
		
		for(int i=0; i<str.length()/2; i++)
		{
			if(str.charAt(i) != str.charAt(str.length()-1-i))
			{
				flag = false;
				break;
			}
		}
		
		return flag;
	}
	
	public static int Compare(String str1, String str2)
	{
		int index = 0;
		int len = 0;
		
		if(str1.length() <= str2.length())
		{
			len = str1.length();
		}
		else
		{
			len = str2.length();
		}
		
		int i=0;
		for(i=0; i<len; i++)
		{
			if(str1.charAt(i) == str2.charAt(i))
			{
				index = 0;
			}
			else if(str1.charAt(i) < str2.charAt(i))
			{
				index = -1;
				break;
			}
			else
			{
				index = 1;
				break;
			}
		}
		
		if(i == len)
		{
			if(str1.length() < str2.length())
				index = -1;
			else if(i < str1.length())
				index = 1;
		}
		
		return index;
	}

	public static String getCommonStr(String str1, String str2)
	{
		String temp = "";
		String longstr = "";
		String shortstr = "";
		String commonstr = "";
		boolean flag = false;
		
		if(str1.length() >= str2.length())
		{
			longstr = str1;
			shortstr = str2;
		}
		else
		{
			longstr = str2;
			shortstr = str1;
		}
		
		for(int i=shortstr.length()-1; i>0; i--)
		{
			for(int j=0; j<shortstr.length()-i; j++)
			{
				temp = shortstr.substring(j, i+j+1);
				if(longstr.indexOf(temp) >= 0)
				{
					flag = true;
					
					commonstr = temp;
					
					break;
				}
			}
			
			if(flag)
				break;
		}
		
		return commonstr;
	}

	public static String RightMove(String str, int length)
	{
		int len = length % str.length();
		
		StringBuffer sb = new StringBuffer();
		
		sb.append(str.substring(str.length()-len)).append(str.subSequence(0, str.length()-len));
		
		return sb.toString();
	}
	
	public static String LeftMove(String str, int length)
	{
		int len = length % str.length();
		
		StringBuffer sb = new StringBuffer();
		
		sb.append(str.substring(len)).append(str.subSequence(0, len));
		
		return sb.toString();
	}
	
	public static String DeleteStr(String str, int pos, int len)
	{
		StringBuffer sb = new StringBuffer();
		
		sb.append(str.substring(0, pos-1)).append(str.substring(pos+len-1));
		
		return sb.toString();
	}
	
	public static String DeleteStr(String str, char ch)
	{
		return str.replaceAll(String.valueOf(ch), "");
	}
	
	public static int getChineseNum(String str)
	{
		int count = 0;
		
		byte[] array = str.getBytes();
		
		count = array.length - str.length();
		
		return count;
	}
}

 

 

输出如下:

 

2
shandong from am I 
gnodnahs morf ma I
gnodnahs from ma I
true
-1
cdefg
abefcfgcsd
abdeffgsd
456789123
789123456
10

 

0
0
分享到:
评论

相关推荐

    各种string类型转换

    在IT领域,字符串类型转换是编程中非常基础且重要的部分,尤其在处理不同编码、数据类型转换时,掌握各种string类型的转换方法对于提高程序的健壮性和灵活性至关重要。以下将详细解析从给定文件中提取出的关于“各种...

    字符串数组转换成string类型的

    总之,将字符串数组转换为单一的string类型是一项常见的编程任务,理解并掌握不同语言中实现这一操作的方法是提升编程技能的重要一步。无论是C++的`stringstream`,Java的`StringBuilder`,还是C#的`string.Join`,...

    为什么C语言没有String类型? - 知乎1

    C语言是一种静态类型语言,它的设计目标是接近底层硬件,提供高效的代码生成。在C语言中,没有内置的String...而其他语言通过提供内置的String类型,降低了字符串操作的复杂性,提高了开发效率,但可能牺牲了一些性能。

    理解C# String类型:特殊的引用类型

    C# String 类型:特殊的引用类型 C# String 类型是一个特殊的引用类型,它的实例是只读的。这意味着 String 类型的变量在被赋值时,实际上是重新创建了一个字符串,而不是修改原来的字符串。这点与其他引用类型不同...

    java中基本类型及string类型

    ### Java中的基本类型与String类型详解 在Java编程语言中,数据类型分为两大类:基本类型(primitive types)和引用类型。基本类型直接存储值,而引用类型则存储指向对象的引用。本文将深入探讨Java中的基本类型...

    Greendao数据库升级添加String类型,

    在本例中,添加一个String类型的字段是没有任何问题的,因为Greendao默认支持对String类型的操作。然而,当试图添加其他非String类型,比如Integer、Float、Boolean等,可能会遇到问题。这可能是由于Greendao内部...

    java中String类型和int类型比较及相互转换

    String类型支持多种操作,如拼接、分割、查找等。 #### 1.2 int类型 int类型是Java中的基本数据类型之一,用于存储整数值。它的范围是从-2^31到2^31-1(即-2147483648到2147483647)。int类型的数据可以直接进行...

    java中将string类型转换成timestamp类型

    "Java中将String类型转换成Timestamp类型" ...将String类型转换成Timestamp类型是Java编程语言中的一种常见操作,该操作需要了解Timestamp类型的特点和限制,并使用正确的方法和技术来实现转换操作。

    C++string类型的使用总结

    ### C++ `string` 类型的使用总结 在C++编程语言中,`string` 类是一种非常重要的数据结构,用于处理文本数据。本篇总结旨在详细介绍`string` 类的构造方法、常用操作方法及其功能特性。 #### 一、`string` 类对象...

    string类型的全部函数

    `string`类型在C++中是一个极其强大的工具,它封装了许多字符串操作,使得处理文本数据变得既简单又高效。掌握`string`类的成员函数,可以极大地提高编程效率和代码的可读性。无论是简单的字符串拼接,还是复杂的...

    ORACLE中CLOB字段转String类型

    ### ORACLE中CLOB字段转String类型 在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何...

    string对象的操作pdf

    #### 一、string 类型简介及基本操作 在现代 C++ 编程中,`std::string` 是一个极其重要的类,它提供了丰富的接口用于字符串的处理,大大简化了字符串操作的复杂性。下面将详细介绍 `std::string` 的一些关键特性...

    NoSQL数据库之Redis数据库管理一(string类型和hash类型)

    String类型的操作包括设置、获取、递增、递减、追加等,这使得它非常适合用于计数器、简单的缓存场景或者存储用户会话数据。 三、Redis中的Hash类型 Hash类型是一种将键值对存储在单个键下的数据结构,特别适合存储...

    Java 之 String 类型

    在Java编程语言中,String类型扮演着至关重要的角色。它被广泛用于表示和操作文本,因为它是不可变的,这确保了字符串的安全性和效率。本文将深入探讨Java中的String类,包括其特性、构造方法、常用方法以及与其他...

    用好c++中的string类型

    `std::string`也支持STL容器的一些操作,如迭代器和算法,这使得它在处理字符串时非常灵活。 总之,`std::string`是C++中处理文本数据的强大工具,它的功能丰富、易用且高效,极大地简化了字符串操作,并减少了内存...

    java中String类型转换方法.pdf

    Java 中 String 类型转换方法是一种常见的编程操作,涉及到各种数据类型之间的转换,包括整型、浮点型、长整型、浮点型等。本文将详细介绍 Java 中 String 类型转换方法的各种形式。 整型到字符串 在 Java 中,将...

    java中string和int型的相互转换.doc

    `String.valueOf()` 方法和 `Integer.toString()` 方法都可以将 int 类型转换为 String 类型,而字符串连接操作符可以将 int 类型转换为 String 类型,并且可以在字符串中插入其他字符。 在实际开发中,我们通常...

    C++里如何将int类型的16进制数转换成string类型[归类].pdf

    今天,我们将讨论如何将 int 类型的 16 进制数转换成 string 类型。 数字与字符串的关系 在计算机中,数字和字符串是两种不同的数据类型。数字可以是整数、浮点数等,而字符串则是一串字符的集合。在 C++ 中,数字...

    Java日期时间Date类型,long类型,String类型表现形式的转换.pdf

    在Java开发中,日期时间的处理是一个常见且重要的功能,涉及到的类型主要包括Date类型、long类型以及String类型。不同的类型之间存在着转换的需求,以便于在不同的场景下使用。本文档将详细介绍如何在Java中实现Date...

    list转换成string数组

    在Java编程语言中,经常需要将`List&lt;String&gt;`类型的数据转换为`String[]`数组类型,以便于进行某些特定的操作或适应某些方法的要求。本文将详细探讨这一转换过程,并通过几个具体的示例来帮助理解。 #### 一、基础...

Global site tag (gtag.js) - Google Analytics