/*字符串:字符串就是一系列字符的序列。在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.javapublic 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++;elseyn = false;}System.out.println("算法1:"+yn);String temp = "",sub1="";//算法2for(i=1;i<n;i++){sub1=str.substring(i,i+1);//将str的第i+1个字符截取下来赋给sub1temp=sub1+temp;}System.out.println("temp="+temp);System.out.println("算法2:"+temp.equals(temp));//判断str与temp是否相等}
}

Java学习之字符串相关推荐

  1. Java学习笔记--字符串和文件IO

    1.Java中的字符串类和字符的表示 2.区分String,StringBuilder和StringBuffer 3.从命令行中给main方法传递参数 4.文件操作 1 Java中的字符串和字符 1. ...

  2. JAVA学习 API_day03(字符串编码, 泛型, 数据结构, Collection)

    字符串编码, 泛型, 数据结构, Collection 1.字符串编码 2.泛型 3.数据结构 4.Collection 1.字符串编码 1.String -> 字符序列 (中文\英文) JVM ...

  3. java学习之字符串的截取

    先说一下我的方法: 1.getChars()方法截取多个字符 2.substring()方法截取子串 3.StringTokenizer()  截取字符串 4.Split()方法截取字符串 下面逐一举 ...

  4. java学习日记 - 字符串

    一. 包装类 1. 为什么要定义包装类 为每一种基本数据类型定义包装类,可以在包装类中定义操作该基本类型的属性和方法 在定义属性时,可以把数据类型定义为包装类,使用起来和基本类型一样(可以自动装箱,拆 ...

  5. java学习中,字符串使用(比较、构造方法)(java 学习中的小记录)

    java学习中,字符串使用(比较.构造方法)(java 学习中的小记录)作者:王可利(Star·星星) String的使用 1.在内存中是如何保存字符串. == :比较的是地址(引用数据类型) equ ...

  6. Java学习总结:飘逸的字符串

    Java学习:飘逸的字符串 前言 相信不管我们运用Java语言来开发项目还是进行数据分析处理,都要运用到和字符串相关的处理方法.这个社会处处有着和字符串相关的影子:日志.文档.书籍等.既然我们离不开字 ...

  7. java 字符串常用函数_Java学习(5)——字符串常用函数

    不是我写的太麻烦了 转自: Java中的字符串也是一连串的字符.但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理.将字符串作为内置的对象处理允许J ...

  8. Java学习笔记(六)--字符串String类

    文章目录 字符串 一.String 类 1.1 声明字符串 1.2 创建字符串 二.连接字符串 2.1 连接多个字符串 2.2 连接其他数据类型 三.获取字符串信息 3.1 获取字符串长度 3.2 字 ...

  9. Android学习笔记----Java中的字符串比较

    用习惯了C#.C++,在做字符串比较时想当然地使用如下语句: 1 string str1 = "abcd", str2 = "abcd"; 2 if(str1= ...

最新文章

  1. Java并发之公平锁
  2. mysql -h139.129.205.80 -p test_db_dzpk db.dump
  3. Repository模式
  4. CSS之使用display:inline-block布局
  5. LeetCode Design TinyURL
  6. cf1009F. Dominant Indices
  7. poj 3436 (最大流)
  8. 工作208:element $message居中测试无法实现
  9. MVC实战之排球计分(六)—— 使用EF框架,创建Controller,生成数据库。
  10. zabbix 如何监控tcp的SYN,establised?
  11. 光纤接口怎么接 图解_视频光端机怎么连接,视频光端机接法图解
  12. 2位字母组合的全球国家或地区缩写
  13. 用Java写一个随机排序的功能
  14. html源代码中 图像的属性标记,HTML图像标签img和源属性src及Alt属性、宽高、对齐...
  15. L298N电机驱动器
  16. BTA分论坛现场直击|区块链+时下新科技,你了解多少?
  17. php normalize,normalize函数怎么使用
  18. 在win10上安装oracle10g
  19. 优秀简历模板分享(前端,Java等通用模板)
  20. seo是什么意思?包含哪些方面?

热门文章

  1. Merge Intervals
  2. 将表中的值变成字段显示
  3. 关于建立完整商业应用软件框架库的设想
  4. ROP简单 ret2syscall
  5. Spring Boot Admin 2.1.4,Spring Boot 应用的 Admin UI
  6. spring异常Unsatisfied dependency expressed through constructor parameter 0
  7. 源码|批量执行invokeAll()多选一invokeAny()
  8. 资管机构年中规模排名出炉:中信资管规模超万亿
  9. 初心大陆-----python宝典之以外学习对比去重
  10. 如何查看阵列卡的队列深度