黑马程序员——String类

------- android培训java培训、期待与您交流! ----------

(String中关于位置的是起始位置和长度,StringBuffer关于位置的是起始位置和终止位置,StringBuffer更像数组)

一、String

字符串最大特点:一旦初始化就不能再被修改(不可变对象,可以浅拷贝)

String s1=”abc”;//s1类似于指针,指向对象“abc”。

Object作为所有类类型的超类,其方法equals比较的是两个对象的内存地址是否相同。

而String类覆盖了这个方法,比较的是字符串的内容

 

String s1=”a”;

String s2=new String(“a”);

String s3=”a”;

一共有2个a,s1指向一个常量”a”,s3初始化时发现已存在的s1指向的常量”a”,则不会再另开辟空间分配。s2是通过new创建的a,位于堆内存中。

(s1==s2)==false

(s1==s3)==true

 

String类方法

1.获取

字符长度:length()//数组的length是字段,不是方法

字符串上某个位置的字符:char charAt(int index)

根据字符返回其在字符串第一次出现的位置

int indexOf(int ch)//没有则返回-1,传入的不是char类型而是int类型

int indexOf(int ch,int fromIndex)//从指定位置开始查询,但返回的是从字符首位开始的位置。

反向索引字符出现位置,返回的是字符最后一次出现的位置

int lastIndexOf(int ch)

 

2.判断(返回boolean)

是否包含某一子串contains(CharSequence str)

字符串是否为空 isEmpty()

字符串是否以指定内容开头/结尾startWith(String prefix)/endWith(String suffix)

字符串内容是否相同 equals()

判断字符串内容是否相同,但是忽略大小写equalsIgnoreCase()

3.转换

字符数组转换为字符串

a通过构造函数

new String(buf)

new String(buf,0,cntBuf)

b通过静态方法

static String copyValueOf(char[]data)

          返回指定数组中表示该字符序列的 String。

static String copyValueOf(char[]data, int offset, int count)

          返回指定数组中表示该字符序列的 String。

valueOf()可以返回多种类型的数据的字符串表示形式,其中也有字符数组:

static String valueOf(char[]data)

                返回 char 数组参数的字符串表示形式。

 

字符串转换为字符数组

char[] toCharArray();

 

字节数组转换为字符串:通过构造函数

String String(byte[]buf,int offset,intcount)

 

字符串转为字节数组

byte[] getBytes()

 

基本数据类型转换为字符串

valueOf(…)

 

字符串转为基本数据类型

使用基本数据类型的包装类的parseTypeName(String data)

 

字符串和字符数组在转换过程中可以指定编码表,想做编码操作必须使用字符数组,字符无法进行编码操作

 

4.替换

字符替换

String replace(char oldChar,char newChar)

String s=”hello”;Strings2=s.replace(‘o’,‘b’);//s2=”hellb”;

子串替换

String replace(CharSequencetarget,CharSequence replacement)

 

5.切割

String[] split(String regex, int limit)

 

6.子串

String substring(int beginIndex,intendIndex)//包括头部包括尾

如果endIndex超出范围,会产生下标越界异常

获取整个字符串,s.substring(0,s.length())

 

7.其他

大小写 toUpperCase()/toLowerCase()

去除头尾多余空格trim()

自然顺序比较两个字符串

int compareTo(String s)

 

二、StringBuffer和StringBuider

api升级的三个因素:1.提高效率2.简化书写3.安全性

 

StringBuffer(线程安全) – 升级版StringBuider(效率高,但不保证同步)

是字符串的一个容器

三个特点

1.长度可变

2.可操作多种数据类型

3.通过toString()方法变成字符串

方法:

1.存储

append(…)//将多种类型的数据添加到末尾,返回this,本类StringBuffer对象

可以连续调用(方法调用链)s.append(3).append(“asda”);

 

insert(int offset,…)//在offset处插入…多种类型的数据,offset不要下标越界

 

2.删除(返回this)

delete(int start,int end)//不包含end

deleteCharAt(int index)//删除index处的字符

sb.delete(0,sb.length());//清空缓冲区

sb.delete(1,1);//什么都不删除

sb.delete(2,1);//报错

 

3.获取

int length()

char charAt(int index)//获取index处的字符

int indexOf(String str)

int lastIndexof(String str)

String substring(int start,int end)

void getChars(int srcBegin,intsrcEnd,char[]dst,int dstBegin)// 将字符从此序列复制到目标字符数组 dst。超出下标会出异常:

IndexOutOfBoundsException- 如果以下任意一项为 true:

srcBegin 为负

dstBegin 为负

srcBegin 参数大于 srcEnd 参数。

srcEnd 大于 this.length()。

dstBegin+srcEnd-srcBegin大于 dst.length

 

4.修改

void setCharAt(int index,char ch)

StringBuffer replace(int start,intend,String str)//用str替换start至end-1的字符

 

5.反转

StringBuffer reverse()

  

三、基本数据类型的包装类

基本数据类型:

void byte int char long short double floatboolean

除了void都有对应的引用型数据类型类:

Byte Integer Character Long Short DoubleFloat Boolean

 

以Integer为例:

1.最常见操作:用于基本数据类型与字符串之间的转换

String data=”123”;

int a=Ingeter.parseInt(data);

整型转字符串:

String        toString()

         返回一个表示该 Integer 值的 String 对象。

static String     toString(int i)

         返回一个表示指定整数的 String 对象。

static String     toString(int i, int radix)

         返回用第二个参数指定基数表示的第一个参数的字符串表示形式。

后两个是静态方法不需要创建Integer对象

 

2.位移:

static int rotateLeft/rotateRight(int I,intdistance)

 

3.进制转换:

十进制转为其他:

static String toHexString()

static String toBinaryString()

static String toOctalString()

其他转为十进制:

parseInt(…,intradix)//将…按照radix的进制表示为整型返回

int a=Integer.parseInt(“BA”,16);

         构造函数传入有效的字符串

int b=Integer(“123”);

         intValue()//非静态方法将对象的int值返回

 

Integer覆盖了equals比较的是数据是否相同 ==则比较的是地址

 

jdk1.5新特性,自动装箱和自动拆箱

原:Integer x=newInteger(“4”);

现:Integer x=4;//4是对象,自动实现了new Integer(“4”),x直接指向这个对象。

x=x+2;//1.x自动拆箱为4,4+2=6,6自动装箱new Integer(6),x再指向此对象

 

因为Integer是类,所以x=null成立

 

在新特性下,如果x的数值在byte范围内,若此值已存在,则不会另外开辟新的空间,而是直接指向这个值。大于byte的范围则会再开辟空间存储

Integer a1=127;

Integer b1=127;

//a1==b1

Integer a2=128;

Integer b2=128;

//a2!=b2

=========

150527 add:

Character包装类有方法 static boolean isAlphabetic(char c)可以判断字符是否是字母。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在现有省、市港口信息化系统进行有效整合基础上,借鉴新 一代的感知-传输-应用技术体系,实现对码头、船舶、货物、重 大危险源、危险货物装卸过程、航管航运等管理要素的全面感知、 有效传输和按需定制服务,为行政管理人员和相关单位及人员提 供高效的管理辅助,并为公众提供便捷、实时的水运信息服务。 建立信息整合、交换和共享机制,建立健全信息化管理支撑 体系,以及相关标准规范和安全保障体系;按照“绿色循环低碳” 交通的要求,搭建高效、弹性、高可扩展性的基于虚拟技术的信 息基础设施,支撑信息平台低成本运行,实现电子政务建设和服务模式的转变。 实现以感知港口、感知船舶、感知货物为手段,以港航智能 分析、科学决策、高效服务为目的和核心理念,构建“智慧港口”的发展体系。 结合“智慧港口”相关业务工作特点及信息化现状的实际情况,本项目具体建设目标为: 一张图(即GIS 地理信息服务平台) 在建设岸线、港口、港区、码头、泊位等港口主要基础资源图层上,建设GIS 地理信息服务平台,在此基础上依次接入和叠加规划建设、经营、安全、航管等相关业务应用专题数据,并叠 加动态数据,如 AIS/GPS/移动平台数据,逐步建成航运管理处 "一张图"。系统支持扩展框架,方便未来更多应用资源的逐步整合。 现场执法监管系统 基于港口(航管)执法基地建设规划,依托统一的执法区域 管理和数字化监控平台,通过加强对辖区内的监控,结合移动平 台,形成完整的多维路径和信息追踪,真正做到问题能发现、事态能控制、突发问题能解决。 运行监测和辅助决策系统 对区域港口与航运业务日常所需填报及监测的数据经过科 学归纳及分析,采用统一平台,消除重复的填报数据,进行企业 输入和自动录入,并进行系统智能判断,避免填入错误的数据, 输入的数据经过智能组合,自动生成各业务部门所需的数据报 表,包括字段、格式,都可以根据需要进行定制,同时满足扩展 性需要,当有新的业务监测数据表需要产生时,系统将分析新的 需求,将所需字段融合进入日常监测和决策辅助平台的统一平台中,并生成新的所需业务数据监测及决策表。 综合指挥调度系统 建设以港航应急指挥中心为枢纽,以各级管理部门和经营港 口企业为节点,快速调度、信息共享的通信网络,满足应急处置中所需要的信息采集、指挥调度和过程监控等通信保障任务。 设计思路 根据项目的建设目标和“智慧港口”信息化平台的总体框架、 设计思路、建设内容及保障措施,围绕业务协同、信息共享,充 分考虑各航运(港政)管理处内部管理的需求,平台采用“全面 整合、重点补充、突出共享、逐步完善”策略,加强重点区域或 运输通道交通基础设施、运载装备、运行环境的监测监控,完善 运行协调、应急处置通信手段,促进跨区域、跨部门信息共享和业务协同。 以“统筹协调、综合监管”为目标,以提供综合、动态、实 时、准确、实用的安全畅通和应急数据共享为核心,围绕“保畅通、抓安全、促应急"等实际需求来建设智慧港口信息化平台。 系统充分整合和利用航运管理处现有相关信息资源,以地理 信息技术、网络视频技术、互联网技术、移动通信技术、云计算 技术为支撑,结合航运管理处专网与行业数据交换平台,构建航 运管理处与各部门之间智慧、畅通、安全、高效、绿色低碳的智 慧港口信息化平台。 系统充分考虑航运管理处安全法规及安全职责今后的变化 与发展趋势,应用目前主流的、成熟的应用技术,内联外引,优势互补,使系统建设具备良好的开放性、扩展性、可维护性。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值