String常用API

这里写目录标题

  • 什么是JDK API
  • 文档注释规范
  • 字符串
    • String以及常用的API
    • String常量池
  • String常用API
  • StringBuilder
  • StringBuffer

什么是JDK API

  • JDK中包含大量打API类库,所谓API(Application Programming Interface,应用程序编程接口)就是一些已写好.可供直接调用的功能(在Java语言中,这些功能以类的形式封装)
  • JDK API包含的类功能强大,经常使用的有:字符串操作.集合操作.文件操作.输入输出操作.网络操作.多线程等等.

文档注释规范

  • 以/*开始,以/结束
  • 在类和方法的开头,用于说明作者,时间,版本,要实现的详细描述信息;
  • 通过javadoc工具,可以轻松的将此注释转换为HTML文档说明;
  • 文档注释不同于普通的注释(//…或//),普同注释写在程序之中,用于程序员进行代码维护和交流,无法通过写工具生成文档;而文档注释(/**…*/)写在类和方法的开头,专门用于生成API使用者进行参考的文档资料

字符串

String以及常用的API

  • String是不可改变的对象,用final修饰,不能被继承
  • 字符串底层封装了字符数组及针对字符数组的操作算法
  • 字符串一旦创建,对象永远无法改变,但是字符串引用可以重新赋值
  • java字符串中任何一个字符对应16位(两个字节)的定长Unicode编码

String常量池

  • java为了提高性能,静态字符串(字面量/常量/常量连接的结果)在常量池中创建,并尽量使用同一个对象,重用静态字符串;
  • 对于重复出现的字符串直接量,JVM会首先在常量池中查找,如果存在即返回该对象
  • /*测试String常量池/
public void testConstantPool() {
String str1 = "Hello";
//不会创建新的String对象,而是使用常量池中已有的"Hello".
Stringstr2 = "Hello";
System.out.println(str1 == str2); // 输出?
//使用new关键字会创建新的String对象
String str3 = new String("Hello")
System.out.println(str1 == str3); //输出?
}

String常用API

使用indexOf实现检索

  • indexOf方法用于实现在字符串中检索另外一个字符串
    String提供几个重载的indexOf方法
    1). **int indexOf(String str)在字符串中检索str,返回其第一次出现的位置,如果找不到则返回-1
    2). i
    nt indexOf(String str,int fromIndex)**从字符串的fromIndex位置开始检索
  • String还定义有lastIndexOf方法
    1). **int lastIndexOf(String str,int form)**str在字符串中多次出现时,将返回最后一个出现的位置
public void testIndexOf() {
Stringstr = "I can because i think i can";
int index = str.indexOf(" can");
System.out.println(index);      // 2
index = strlastIndexOf(" can");
System.out.println(index);     // 24
index = str.indexOf("can", 6);
System.out.println(index);    // 24
index = str.indexOf(" Can");
System.out.println(index);   // -1
  • substring获取字符串
    substring方法用于返回一个字符串的子字符串
    substring常用重载方法定义如下
    1).**String substring(int beginIndex,int endIndex)**返回字符串中从下标beginIndex(包括)开始到endIndex(不包括)结束的子字符串
    2).String sunstring(int beginIndex)返回字符串从下标beginIndex开始到字符串结尾的子字符串
public void testSubstring() {
Stringstr = "http://www.oracle.com";
String subStr = str.substring(11, 17 );
System.out.println(subStr); // oracle
subStr = str.substring( 7 );
System.out.println(subStr); // www.oracle.com
}
  • **trim()**去掉一个字符串前后空白
public void testTrim() {
String userName ="      good man         "
userName = userName.trim();
System.out. println( userName.length ( ) ); // 8
Syste m. out. println(userName);  // good man
}
  • **cahrAt(int index)**返回字符串指定位置的字符.参数index表示指定位置
  • startsWith()和endsWith()
    检查一个字符串是否以指定字符串开头或者结尾
public void testStartWithAndEndWith() {
String str = " Thinking in Java";
System. out. println(str.endsWith("Java")); // true
System. out. println(str.startsWith("T"));// true 
System. out.println(str.startsWith(" thinking”)); // false

  • toUpperCase() ----------转大写
  • toLowerCase()-----------转小写
  • isEmpty();--------------检查空字符串
  • length()----------------字符串长度

StringBuilder

  • 字符串构建器,可改变字符串,非线程安全,并发处理性能较快
  • append()追加字符串内容
  • insert()插入字符串
  • delete()删除字符串
  • replace()------------替换字符串
  • revers()-------------字符串反转

StringBuffer

  • 具有线程安全性,同步处理,性能较慢

热门文章

暂无图片
编程学习 ·

使用ssh连接window和 oracle virtualBox中的虚拟机 保姆级教程

目录环境基本连接步骤进一步配置hostname环境虚拟机 VM Virtualbox 6.1 虚拟机系统 debain 10.3虚拟机网卡:1.虚拟机网卡2.主机 windows 10配置好以上环境后开始配置虚拟机,当然host-only网络适配器的ip地址可以自己设置。 基本连接步骤 第一步: 虚拟机中运行 ps -e | gr…
暂无图片
编程学习 ·

【数据结构】-排序-快速排序

~快速排序在平均情况下是效果最好的排序算法~每趟子表的排序都是从两头向中间交替逼近,接下来举一个例子类别排序方法最好时间最坏时间平均时间空间复杂度稳定性序列特征适用于插入排序直接插入排序n(顺序)n2(逆序)n21稳定有序序列+待排序元素+无序序列基本有序/n很小折半插…
暂无图片
编程学习 ·

PAT 1161 Merging Linked Lists

原题链接:暂无 关键词:链表 Given two singly linked lists L 1 =a 1 →a 2 →…→a n−1 →a n L1=a1→a2→…→an−1→an and L 2 =b 1 →b 2 →…→b m−1 →b m L2=b1→b2→…→bm−1→bm . If n≥2m n≥2m , you are supposed to reverse and merge the shorter one i…
暂无图片
编程学习 ·

中断、异常、系统调用的概念

系统调用是由应用程序发起的,意思是应用程序主动向操作系统发出服务请求。 异常是由不良的应用程序发起的,意思是非法指令或者其他坏的处理状态,比如内存出错。 中断是由外设发起的,它来自于不同硬件设备的计时器或者网络的中断。
暂无图片
编程学习 ·

taro开发微信小程序 -- 下拉刷新和上拉加载

参考文档:https://taro-docs.jd.com/taro/docs/tutorial#%E9%A1%B9%E7%9B%AE%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84其实和微信小程序一样,只要设置页面配置信息并添加对应函数即可class Index extends Component {// 添加小程序页面配置信息config: {enablePullDownRefresh: …
暂无图片
编程学习 ·

Spring Boot / Spirng Cloud 引入Rabbit MQ

注意: spring cloud版本:Greenwich.RELEASE spring boot 版本: 2.1.5.RELEASE 1.导包,在pom.xml中导入<dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit</artifactId></dependency>2.加入配置文件 …
暂无图片
编程学习 ·

anaconda安装pytorch

CPU版本: https://pytorch.org/get-started/previous-versions/ #CPU only conda install pytorch1.2.0 torchvision0.4.0 cpuonly -c pytorch 参考博客 [1]https://blog.csdn.net/u014723479/article/details/103001861?utm_medium=distribute.pc_relevant.none-task-blog-B…
暂无图片
编程学习 ·

火墙优化策略

实验环境 : 两台主机 一台可以连外网 一台只能内网连接 火墙切换方式及安装 iptables的安装及切换iptables -------->firewalldiptables 的永久保存策略iptables命令数据包状态 在服务器上:在客户主机中snat(13.30-14.00) 服务器主机:客户主机:在客户机中测试:fire…
暂无图片
编程学习 ·

活动目录的备份和恢复

活动目录的备份和恢复AD的备份和恢复AD回收站说明启用回收站功能演示AD回收站AD活动目录的备份和还原AD活动目录的备份安装Windows Server Backup工具添加角色和功能开始之前-安装类型-服务器选择-服务器角色,默认下一步功能确认结果开始备份AD活动目录AD活动目录的恢复重启按…
暂无图片
编程学习 ·

【GNURadio RTL-SDR】双RTL-SDR信号源的FM调频广播接收机

文章目录1. 前言2. 实验过程2.1 制作流图2.2 RTL-SDR的设备参数1. 前言 两个RTL-SDR的dongle“电视棒”,芯片 RTL2832U + R820T ,淘宝50左右那种能收FM和我国DTMB频段,想都接到同一台电脑去用软件无线电(GNURadio)的方式收多个FM调频广播信号。 2. 实验过程 在谷歌搜了不少…
暂无图片
编程学习 ·

Plotly+Cufflinks,交互式图表神器,一行代码GET!

前言本文将介绍如何使用Plotly+Cufflinks更简便地制作出更好的图表。 这是Github上一个大神发布的资料,本人学习之后觉得非常实用,所以和大家分享。需要查看代码的童鞋指路Github:https://github.com/WillKoehrsen/Data-Analysis 本文中的所有代码都是使用Jupyter notebook完…
暂无图片
编程学习 ·

笔记:R输入文件数据处理txt, csv,画饼图

R输入文件数据处理txt, csv, xlsx 数据处理 1)获取文件类型 parts = strsplit(infile, split=".", fixed = TRUE) ftype = parts[[1]][length(parts[[1]])]2)根据文件类型选择输入方式 if (ftype == "csv"){loandata<<-data.frame(read.csv(infile…
暂无图片
编程学习 ·

解决Docker无法停止的方法

导读在本篇文章里小编给大家整理了关于docker容器无法stop的解决办法,有需要的朋友们可以参考下。解决方法如下:1、强制删除容器docker rm -f jenkins2、清理此容器的网络占用docker network disconnect --force bridge jenkins docker 无法stop,kill容器最近在遇到docker无…
暂无图片
编程学习 ·

https://www.cnblogs.com/hdk1993/p/5853233.html

c++文件打开方式详解 csdn编译器使用方法 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与…
暂无图片
编程学习 ·

从word中复制内容包含图片到百度ueditor编辑器中

1.4.2之后官方并没有做功能的改动,1.4.2在word复制这块没有bug,其他版本会出现手动无法转存的情况本文使用的后台是Java。前端为Jsp(前端都一样,后台如果语言不通得自己做 Base64编码解码)因为公司业务需要支持IE8 ,网上其实有很多富文本框,效果都很好。例如www.wangEdi…
暂无图片
编程学习 ·

Echarts3 关系图-力导向布局图 使用参数

// 基于准备好的dom,初始化ECharts实例 var myChart = echarts.init(document.getElementById(main), macarons); // 指定图表的配置项和数据var option = {tooltip : {show : true, //默认显示showContent:true, //是否显示提示框浮层trigger:item,/…
暂无图片
编程学习 ·

PYQT中QtMultimedia模块使用及处理

PYQT中,使用QtMultimedia模块,播放视频。 本文可以实现的功能是点击播放按钮,可以播放视频;点击暂停按钮,可以停止播放视频;拉动进度条,可以定位视频播放位置。 附上代码: from PyQt5.QtCore import QUrl import PyQt5.QtWidgets from PyQt5.QtMultimedia import * fro…