Java学习之字符串

/*字符串:字符串就是一系列字符的序列。在java语言中字符串是一对双引号("")括起来的字符序列
声明:字符串常量 与 字符常量不同,字符常量是用单引号(’)括起来的字符,而字符串常量是用双引号(")括起来的字符序列
声明字符串常量,分为对象的声明与对象的创建两步,这两步可以分成2个独立的语句,也可以在一个语句中完成
*/
//格式1:
String 变量名
变量名=new String(“字符串”);

//例如:
String s;//声明字符串型引用变量s,此时s的值为null
s= new String("Nice to see you ");//在堆内存中分配空间,并将s指向该字符串首地址
//在上例中,第一个语句之声明了字符串引用变量s,此时s的值为null,第二个语句则在堆内存中分配了内存空间,并将s指向了字符串的首地址

//格式2:
String s = new String("Nice to see you ");

//格式3:
//此种方法较为特殊,方法如下,直接利用双引号括起来的字符串为新建的String对象赋值,即在声明字符串变量时,直接初始化
如下:
String s = "Nice to see you "

//因为字符串为引用型变量,所以其存储方式与数组的存储方式基本相同
程序中可以用赋值运算符为字符串变量赋值,除此之外,Java语言的定义"+"运算符可用于2个字符串的连接操作
如下:
str = "Nice to see you " + "Mr. F"

//如果字符串与其他类型的变量进行"+"运算,系统自动将其他类型的数据转换为字符串类型:
如下:
int e=5;
String s = “e=” + e //s的值为’e=5’

//利用String类创建字符串变量,一旦被初始化,它的值和所分配的内存内容就不可再改变,如果要改变它的值,他就会产生一个新的字符串
如下:
Sting str1 = “Java”;
Str1 =str1+ “Good”;

//以上2行代码解释如下:
表面看起来像是一个简单的字符串重新赋值,实际上在程序的解释过程中却不是这样的;程序首先产生str1的一个字符串对象,并在内存中申请了一段空间,由于发现又需要重新赋值,在原来的空间已经不可能再追加新的内容,那么系统不得不将这个对象放弃,再重新生成第二个新的对象str1并重新申请了一个新的内存空间,虽然str1的内存地址(句柄)是同一个,但对象已经不再是同一个了

二、String类的常用方法

Java语言为String类定义了许多方法,可使用如下格式,调用Java语言定义的方法
如下:
字符串变量名.方法名();

演示程序如下:
程序要求:判断回文字符串
程序解释:
回文是一种"从前往后读"和"从后往前读"都相同的字符串,例如:“rotor”,在本例中,将会使用到两种算法来判断会回文字符串。
在程序中对两个字符串进行比较时,会使用关系运算符"==",而比较两个字符串时,需使用equals()方法。
代码如下:

//filename huiwen.java

public class huiwen
{
	public static void main(String[] args)
	{
		String str = "rotor";
		int e=0,n;
		boolean yn=true;
		if(args.length>0)
			str = args[0];
		System.out.println("str=" + str);
		n = str.length();
		char sChar,eChar;
		while(yn && (i<n/2)) //算法1
		{
			sChar = str.char.At(e);//返回字符串str正数第i+1个位置的字符
			eChar = str.char.At(n-i-1);//返回字符串str倒数第i+1个位置的字符
			System.out.println("sChar="+sChar+" eChar="+eChar);
			if(sChar == eChar)
				i++;
			else
				yn = false;
		}
		System.out.println("算法1:"+yn);
		String temp = "",sub1="";//算法2
		for(i=1;i<n;i++)
		{
			sub1=str.substring(i,i+1);//将str的第i+1个字符截取下来赋给sub1
			temp=sub1+temp;
		}
		System.out.println("temp="+temp);
		System.out.println("算法2:"+temp.equals(temp));//判断str与temp是否相等
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指剑

捐点钱吧,小笼包8元一笼,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值