首页 > 编程语言 >Java学习之字符串

Java学习之字符串

时间:2022-12-28 18:00:45浏览次数:41  
标签:字符 Java String temp 如下 学习 str 字符串


/*字符串:字符串就是一系列字符的序列。在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是否相等
}
}


标签:字符,Java,String,temp,如下,学习,str,字符串
From: https://blog.51cto.com/u_10523036/5975967

相关文章

  • .NET和JavaScript控件丨Infragistics功能简介
    使用InfragisticsUltimateUI/UX工具包简化开发,提供综合的企业级UI控件库和使用Indigo.Design的UX设计-开发协作工具-一个完整的设计到代码系统-集成原型、设计系统......
  • vue框架学习笔记
    #webpack使用 概念:webpack是前端项目工程化的具体解决方案主要功能:提供前端模块化开发支持、代码压缩混淆、处理浏览器端JavaScript的兼容性、性能优化等;//使用Node.j......
  • .NET Core 学习笔记
    .net是一个开发平台。包含.netframwork、netcore等,具体开发的语言主要是C#一、.netframwork和.netcore二者的区别①、.netframework是系统基本安装,相互影响(所......
  • Java千问24:一文读懂Java语言方法的重写(覆盖、Override)
    ​很多初学Java语言的小伙伴,在学到“面向对象”这块内容的时候,都会学到的一个概念,那就是“方法的重写”。重写又叫覆盖,英文名为“Override”。虽然”重写”、”覆盖”、“O......
  • oracle 根据逗号拆分字符串一行转多行
    SELECT A.*, REGEXP_SUBSTR(A.PRODUCTNUMS,'[^,]+',1,L)ASPRODUCTNUM,LFROM LG_ZJQH_PRODUCTVALUES_WWDGXA, (SELECTLEVELLFROMDUALCONNECTBYLEVEL<=10......
  • 从入门到上天,原来Java程序员一生要看这么多书?(注意:信息量庞大,可能会有卡顿)...
    本文档目前已收录277本Java相关领域经典技术书籍,从初级开发者到资深架构师,涵盖Java从业者的各个阶段,并持续更新。涵盖领域:Java入门书籍,Java基础及进阶书籍,框架与中间件,......
  • Java原理性基础知识整理[详细]
    文章目录​​Java程序编译过程​​​​编译型和解析型语言​​​​命名规范​​​​编程风格​​​​大括号​​​​非C风格的数组声明​​​​阿里巴巴Java开发手册​​​......
  • Java千问22:正确理解Java方法的返回值
    ​首先来看一段代码我们把这段代码称为代码①,接下来我们再来看另外一段代码​我们把这段代码称为代码②。​在代码①当中,定义了一个方法,这个方法声明的返回值类型是double,而......
  • Java后端,数据库,运维..笔记
    计算机核心数据结构数据结构内容介绍稀疏数组和队列链表栈计算机网络计算机网络-概述计算机网络-物理层计算机网络-数据链路层计算机网络-网络层计算机网络-......
  • 通过HH8WilEdit学习WIL 文件编码 1 计划学习步骤
    Delphi经典游戏程序设计40例的学习已经结束,敲了所有的代码,对DELPHI有了初步的认识下一步开始学习WIL文件编码,找到了一个早期的HH8WilEdit的源码用这个是因为它没有......