[疯狂Java]基础类库:String

1. Java字符串对象:

    1) Java提供了三种字符串类型:String、StringBuilder、StringBuffer;

    2) 其中String是不可变类型,即一旦初始化后其内容不可改变,后两种是可变类型,专门用来对字符串进行修改;

    3) 后两者的区别就是StringBuffer是线程安全的,而StringBuilder是线程不安全的(即只能用于单线程),两者的方法完全一样;


2. String的构造器:

    1) 无参构造器:String();  // 构造一个长度为0的字符串,一般用于特殊用途

    2) 利用二进制字节序列初始化:

         i. String(bytes[] bytes[, Charset charset | String charsetName]);

         ii. String(bytes[] bytes, int offset, int len[, Charset charset | String charsetName]);

!!由于字节序列转换成Java字符时有编码问题,因此需要指定编码集,但如果不指定编码集将使用Charset.defaultCharset(即OS默认编码集)进行解码;

    3) 利用字符数组初始化:

         i. String(char[] value);

         ii. String(char[] value, int offset, int count);

!!形式和byte序列相似,只不过无需解码了,因为char已经是Java中的字符了;

    4) 用另一个Java字符串初始化:String(String original | StringBuilder builder | StringBuffer buffer);


3. String的比较方法:

!!大小比较:

    1) int compareTo[IgnoreCase](String anotherString);  // 后者是无视大小写进行比较

    2) 返回第一个不相等的字符差,如果其中一个是另一个的前缀则返回两者长度差;

    3) 一般这个差值的大小对于程序来说没有什么太大的意义,一般只是根据差值是正是负还是0来判断两者的大小罢了;

!!相等比较:

    1) boolean equals[IngoreCase](Object anObject | String anotherString); 

!!前者覆盖于Object类但实现时用来比较字符串,因此就得当成boolean equals(String anotherString)来使用;

!!后者是忽略大小写的比较;

    2) 和StringBuffer内容比较:boolean contentEquals(StringBuffer buff);


4. String获取相应的字节序列和字符序列:

    1) 获取字节序列:byte[] getBytes([Charset charset | String CharsetName]);  // 这是编码过程,因此可能需要指定编码集

    2) 获取字符序列:char[] toCharArray();  // 不是getChars了,需要即

    3) 但是还有一个复制到字符序列的特殊方法:void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);  // 将[srcBegin, srcEnd)之间的字符复制到dst的dstBegin的位置

!!Java库中所有的区间left - right都是左闭右开的!![left, right)!!


5. String的检索:

    1) 随机访问字符:char charAt(int index);  // 即数组的arr[index]访问,只不过String是面向对象的类

    2) 找出指定字符和指定子串的位置:

         i. 指定字符:int indexOf | lastIndexOf(int ch[, int fromIndex]);

         ii. 指定子串:int indexOf | lastIndexOf(String str[, int fromIndex]);

!!indexOf找的是第一个出现的,lastIndexOf找的是最后一个出现的,fromIndex是查找的起始位置


6. String检查前后缀:

    1) 前缀:boolean startsWith(String prefix[, int toffset]);  // 是否已prefix作为前缀,判断的起始可以用toffset指定

    2) 后缀:boolean endsWith(String suffix);  // 就只有这么一个版本,无需指定起始位置


7. 截取子串:String substring(int beginIndex[, int endIndex]);


8. 大小写转换:

    1) String toLowerCase();  // 转成小写

    2) String toUpperCase();  // 转成大写


9. 其它常用方法:

    1) 连接:String concat(String str); // 和+连接字符串的功能一样

    2) 返回长度:int length();  // String的都是方法,只有数字的才是length数据成员

    3) 替换单个字符:String replace(char oldChar, char newChar);  // 替换第一个字符


10. String提供的一些静态工具方法:

    1) 将其它类型转换成字符串对象:static String valueOf(type val);  // type包括所有的基本类型(boolean、int等)

!!更重要的是type也可以是Object类型的,如果是引用类型会自动调用其toString方法(用户自定义类型也可以,只不过需要先实现toString方法!!);

    2) 其余查看String的API手册即可;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园的建设目标是通过数据整合、全面共享,实现校园内教学、科研、管理、服务流程的数字化、信息化、智能化和多媒体化,以提高资源利用率和管理效率,确保校园安全。 智慧校园的建设思路包括构建统一支撑平台、建立完善管理体系、大数据辅助决策和建设校园智慧环境。通过云架构的数据中心与智慧的学习、办公环境,实现日常教学活动、资源建设情况、学业水平情况的全面统计和分析,为决策提供辅助。此外,智慧校园还涵盖了多媒体教学、智慧录播、电子图书馆、VR教室等多种教学模式,以及校园网络、智慧班牌、校园广播等教务管理功能,旨在提升教学品质和管理水平。 智慧校园的详细方案设计进一步细化了教学、教务、安防和运维等多个方面的应用。例如,在智慧教学领域,通过多媒体教学、智慧录播、电子图书馆等技术,实现教学资源的共享和教学模式的创新。在智慧教务方面,校园网络、考场监控、智慧班牌等系统为校园管理提供了便捷和高效。智慧安防系统包括视频监控、一键报警、阳光厨房等,确保校园安全。智慧运维则通过综合管理平台、设备管理、能效管理和资产管理,实现校园设施的智能化管理。 智慧校园的优势和价值体现在个性化互动的智慧教学、协同高效的校园管理、无处不在的校园学习、全面感知的校园环境和轻松便捷的校园生活等方面。通过智慧校园的建设,可以促进教育资源的均衡化,提高教育质量和管理效率,同时保障校园安全和提升师生的学习体验。 总之,智慧校园解决方案通过整合现代信息技术,如云计算、大数据、物联网和人工智能,为教育行业带来了革命性的变革。它不仅提高了教育的质量和效率,还为师生创造了一个更加安全、便捷和富有智慧的学习与生活环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值