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.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学习之字符串相关推荐
- Java学习笔记--字符串和文件IO
1.Java中的字符串类和字符的表示 2.区分String,StringBuilder和StringBuffer 3.从命令行中给main方法传递参数 4.文件操作 1 Java中的字符串和字符 1. ...
- JAVA学习 API_day03(字符串编码, 泛型, 数据结构, Collection)
字符串编码, 泛型, 数据结构, Collection 1.字符串编码 2.泛型 3.数据结构 4.Collection 1.字符串编码 1.String -> 字符序列 (中文\英文) JVM ...
- java学习之字符串的截取
先说一下我的方法: 1.getChars()方法截取多个字符 2.substring()方法截取子串 3.StringTokenizer() 截取字符串 4.Split()方法截取字符串 下面逐一举 ...
- java学习日记 - 字符串
一. 包装类 1. 为什么要定义包装类 为每一种基本数据类型定义包装类,可以在包装类中定义操作该基本类型的属性和方法 在定义属性时,可以把数据类型定义为包装类,使用起来和基本类型一样(可以自动装箱,拆 ...
- java学习中,字符串使用(比较、构造方法)(java 学习中的小记录)
java学习中,字符串使用(比较.构造方法)(java 学习中的小记录)作者:王可利(Star·星星) String的使用 1.在内存中是如何保存字符串. == :比较的是地址(引用数据类型) equ ...
- Java学习总结:飘逸的字符串
Java学习:飘逸的字符串 前言 相信不管我们运用Java语言来开发项目还是进行数据分析处理,都要运用到和字符串相关的处理方法.这个社会处处有着和字符串相关的影子:日志.文档.书籍等.既然我们离不开字 ...
- java 字符串常用函数_Java学习(5)——字符串常用函数
不是我写的太麻烦了 转自: Java中的字符串也是一连串的字符.但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理.将字符串作为内置的对象处理允许J ...
- Java学习笔记(六)--字符串String类
文章目录 字符串 一.String 类 1.1 声明字符串 1.2 创建字符串 二.连接字符串 2.1 连接多个字符串 2.2 连接其他数据类型 三.获取字符串信息 3.1 获取字符串长度 3.2 字 ...
- Android学习笔记----Java中的字符串比较
用习惯了C#.C++,在做字符串比较时想当然地使用如下语句: 1 string str1 = "abcd", str2 = "abcd"; 2 if(str1= ...
最新文章
- Java并发之公平锁
- mysql -h139.129.205.80 -p test_db_dzpk db.dump
- Repository模式
- CSS之使用display:inline-block布局
- LeetCode Design TinyURL
- cf1009F. Dominant Indices
- poj 3436 (最大流)
- 工作208:element $message居中测试无法实现
- MVC实战之排球计分(六)—— 使用EF框架,创建Controller,生成数据库。
- zabbix 如何监控tcp的SYN,establised?
- 光纤接口怎么接 图解_视频光端机怎么连接,视频光端机接法图解
- 2位字母组合的全球国家或地区缩写
- 用Java写一个随机排序的功能
- html源代码中 图像的属性标记,HTML图像标签img和源属性src及Alt属性、宽高、对齐...
- L298N电机驱动器
- BTA分论坛现场直击|区块链+时下新科技,你了解多少?
- php normalize,normalize函数怎么使用
- 在win10上安装oracle10g
- 优秀简历模板分享(前端,Java等通用模板)
- seo是什么意思?包含哪些方面?
热门文章
- Merge Intervals
- 将表中的值变成字段显示
- 关于建立完整商业应用软件框架库的设想
- ROP简单 ret2syscall
- Spring Boot Admin 2.1.4,Spring Boot 应用的 Admin UI
- spring异常Unsatisfied dependency expressed through constructor parameter 0
- 源码|批量执行invokeAll()多选一invokeAny()
- 资管机构年中规模排名出炉:中信资管规模超万亿
- 初心大陆-----python宝典之以外学习对比去重
- 如何查看阵列卡的队列深度