JAVASE02-Unit01: API文档 、 字符串基本操作
API文档 、 字符串基本操作
文档注释
package day01;
/**
* 文档注释只能定义在三个地方:
* 类,方法,常量
*
* 文档注释是功能注释,用来说明功能作用
* 在类上使用的目的是说明当前类的设计目的
*
* @author adminitartor
* @version 1.0
* @see java.lang.String
* @since JDK1.0
*
*/
public class DocApiDemo {
/**
* sayHello方法中的问候语
*/
public static final String INFO = "你好!"; /**
* 对给定用户添加一个问候语
* @param name 给定的用户名
* @return 添加了问候语的字符串
*/
public String sayHello(String name){
return "你好!"+name;
}
}
DocApiDemo.java
频繁修改字符串带来的性能开销问题
package day01;
/**
* 频繁修改字符串带来的性能开销问题
* @author adminitartor
*
*/
public class StringDemo2 {
public static void main(String[] args) {
String str = "a";
for(int i=0;i<1000000;i++){
str += "a";
} }
}
StringDemo.java
字符串常量池
package day01; import java.util.Random; /**
* 字符串常量池
* java对字符串做了一个优化措施,即:使用字面量形式
* 创建字符串对象时,会将该对象存入常量池缓存起来,
* 当再次创建该内容字符串时会重用对象,减少内存开销。
* 正因为重用相同内容字符串对象,所以该对象变为"公用"
* 对象,那么字符串被规定为是不便对象,即字符串对象一
* 旦创建内容不可改变,若改变必定创建新对象。
* @author adminitartor
*
*/
public class StringDemo1 {
public static void main(String[] args) {
String s1 = "123abc";
//字面量形式创建字符串会重用之前创建的对象
String s2 = "123abc";//重用s1创建的对象 System.out.println(s1==s2);//true String s3 = "123abc";
System.out.println(s1==s3);//true //new 一定创建新对象
String s4 = new String("123abc");
System.out.println(s1==s4);//false //修改内容会创建新对象
s1 = s1+"!";
System.out.println(s1);//123abc!
System.out.println(s2);//123abc
System.out.println(s1==s2);//false /*
* 编译器在编译源程序时当发现一个计算表达式
* 计算符号两边的内容都是字面量时,会直接运算
* 并将结果编译到class文件中,所以下面的代码
* 在class文件中的样子为:
*
* String s5 = "123abc";
*
* 所以s5会重用s2对象
*/
String s5 = "123"+"abc";
System.out.println(s2==s5); String s = "123";
String s6 = s + "abc";
System.out.println(s2==s6); String s7 = 1+"23"+"abc";
System.out.println(s2==s7); String s8 = '1'+23+"abc";
System.out.println(s2==s8); } }
StringDemo.java
截取指定范围内的字符串
package day01;
/**
* String substring(int start,int end)
* 截取指定范围内的字符串
* JAVA API有一个特点,通常使用两个数字表示范围
* 时都是"含头不含尾"的
* @author adminitartor
*
*/
public class String_Substring {
public static void main(String[] args) {
// 01234567890123
String str = "www.oracle.com";
//截取域名
String sub = str.substring(4, 10);
System.out.println(sub); sub = str.substring(4);
System.out.println(sub); //通用截取域名操作
str = "www.sohu.com.cn";
int s = str.indexOf(".")+1;
int e = str.indexOf(".",s);
sub = str.substring(s, e);
System.out.println(sub); }
}
String_substring
将当前字符串中的英文部分转换为全大写或全小写
package day01;
/**
* String toUpperCase()
* String toLowerCase()
* 将当前字符串中的英文部分转换为全大写或全小写
* @author adminitartor
*
*/
public class String_ToUpperCase {
public static void main(String[] args) {
String str = "我爱Java";
String upper = str.toUpperCase();
System.out.println(upper); String lower = str.toLowerCase();
System.out.println(lower);
}
}
String_ToUpperCase.java
去除当前字符串两边的空白字符
package day01;
/**
* String trim()
* 去除当前字符串两边的空白字符
* @author adminitartor
*
*/
public class String_Trim {
public static void main(String[] args) {
String str = " hello ";
System.out.println(str);
str = str.trim();
System.out.println(str);
}
}
String_Trim.java
将java中其他类型转换为一个字符串
package day01;
/**
* String提供了一组静态方法valueOf
* 作用是将java中其他类型转换为一个字符串
* 常用来将基本类型转换为字符串
* @author adminitartor
*
*/
public class String_ValueOf {
public static void main(String[] args) {
int a = 123;
String iStr = String.valueOf(a);
System.out.println(iStr+4); double d = 123.123;
String dStr = String.valueOf(d);
System.out.println(dStr+4); iStr = a + ""; }
}
String_ValueOf.java
该类为了解决频繁修改字符串带来的性能损耗问题
package day01;
/**
* java.lang.StringBuilder
* 该类为了解决频繁修改字符串带来的性能损耗问题
* 其提供了编辑字符串的相关方法:
* 增,删,改,插
* @author adminitartor
*
*/
public class StringBuilderDemo {
public static void main(String[] args) {
String str = "努力学习java";
/*
* 想修改字符串则创建StringBuilder并将
* 要修改的字符串内容传入。
*/
StringBuffer builder
= new StringBuffer(str); /*
* StringBuilder append(String str)
* 在当前字符串末尾追加给定内容
*
* 努力学习java
* 努力学习java,为了找个好工作!
*/
builder.append(",为了找个好工作!");
//toString可以获取builder内部的字符串
str = builder.toString();
System.out.println(str); /*
* StringBuilder replace(int s,int e,String str)
* 将当前字符串指定范围内的字符串内容替换为给定内容
*
* 努力学习java,为了找个好工作!
* 努力学习java,就是为了改变世界!
*/
builder.replace(9, 16, "就是为了改变世界");
System.out.println(builder.toString()); /*
* StringBuilder delete(int s,int e)
* 删除指定范围内的字符串
*
* 努力学习java,就是为了改变世界!
* ,就是为了改变世界!
*/
builder.delete(0, 8);
System.out.println(builder.toString()); /*
* StringBuilder insert(int index,String str)
* 在指定位置插入指定字符串
*
* ,就是为了改变世界!
* 活着,就是为了改变世界!
*/
builder.insert(0, "活着");
System.out.println(builder.toString()); //反转字符串
builder.reverse();
System.out.println(builder.toString());
}
}
StringBuilderDemo.java
使用StringBuilder修改字符串的效率
package day01;
/**
* 使用StringBuilder修改字符串的效率
* @author adminitartor
*
*/
public class StringBuilderDemo2 {
public static void main(String[] args) {
StringBuilder builder
= new StringBuilder("a");
for(int i=0;i<1000000;i++){
builder.append("a");
}
}
}
StringBuilderDemo2.java
返回当前字符串中指定位置处的字符
package day01;
/**
* char charAt(int index)
* 返回当前字符串中指定位置处的字符
* @author adminitartor
*
*/
public class String_CharAt {
public static void main(String[] args) {
// 0123456789012345
String str = "thinking in java";
char c = str.charAt(9);
System.out.println(c);//'i' /*
* 检测回文
* 上海自来水来自海上
*/
str = "上海自来水自来海上";
for(int i=0;i<str.length()/2;i++){
if(str.charAt(i)!=
str.charAt(str.length()-1-i)
){
System.out.println("不是回文");
return;//结束方法
}
}
System.out.println("是回文");
}
}
String_CharAt.java
查找给定字符串在当前字符串中的位置(下标)
package day01;
/**
* int indexOf(String str)
* 查找给定字符串在当前字符串中的位置(下标)
* 若当前字符串不含有给定内容则返回指为-1
* @author adminitartor
*
*/
public class String_IndexOf {
public static void main(String[] args) {
//java编程思想
// 0123456789012345
String str = "thinking in java"; int index = str.indexOf("in");
System.out.println("index:"+index);
//从指定位置处开始查找"in"第一次出现的位置
index = str.indexOf("in",3);
System.out.println("index:"+index);
//查找最后一次出现"in"的位置
index = str.lastIndexOf("in");
System.out.println("index:"+index); }
}
String_IndexOf.java
返回当前字符串的长度(字符个数)
package day01;
/**
* int length()方法
* 返回当前字符串的长度(字符个数)
* @author adminitartor
*
*/
public class String_Length {
public static void main(String[] args) {
String str = "我爱java";
int len = str.length();
System.out.println("len:"+len);
}
}
String_Length.java
判断当前字符串是否是以给定字符串起始或结尾的
package day01;
/**
* boolean startsWith(String str)
* boolean endsWith(String str)
* 判断当前字符串是否是以给定字符串起始或结尾的
* @author adminitartor
*
*/
public class String_StartsWith {
public static void main(String[] args) {
String str = "thinking in java";
boolean starts = str.startsWith("think");
System.out.println("starts:"+starts); boolean ends = str.endsWith("ava");
System.out.println("ends:"+ends);
}
}
String_StartsWith.java
JAVASE02-Unit01: API文档 、 字符串基本操作的更多相关文章
- Day01:API文档 / 字符串基本操作
JDK API 什么是JDK API? JDK中包含大量的API类库,所谓AP就是一些写好的,可提供直接调用的功能(在Java语言中,这些功能以类的形式封装). JDK API包含的类库功能强大,经常 ...
- jQuery MiniUI开发系列之:使用API文档
jQuery MiniUI在组件设计上,是简约.独立的,没有复杂的继承体系. 比如使用DataGrid,可以在api文档的datagrid部分,查找到datagrid的所有属性.方法.事件,而无需关注 ...
- ASP.NET CORE 1.0 MVC API 文档用 SWASHBUCKLE SWAGGER实现
from:https://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/ 代码生成工具: https ...
- HighCharts 详细使用及API文档说明
一.HighCharts开发说明: HighCharts开发实际上配置HighCharts每个部分,比如配置标题(title),副标题(subtitle)等,其中每个部分又有更细的参数配置,比如标题下 ...
- GhostDoc:生成.NET API文档的工具 (帮忙文档)
在 Sandcastle:生成.NET API文档的工具 (帮忙文档) 后提供另一个生成API文档的工具. 1) 准备工作 安装GhostDoc Proc. 收费的哦.... 这个工具的优势是不像 ...
- 使用jsdoc-toolkit来自动生成js api文档
近来前端组小盆友开发的类库越来越多,很多情况下彼此不知道写了些什么方法,为了更好的合作提高工作效率,找了个比较好的api文档生成方法.使用jsdoc-toolkit来自动生成js api文档. 一. ...
- HighCharts 具体使用及API文档说明
一.HighCharts开发说明: HighCharts开发实际上配置HighCharts每一个部分,比方配置标题(title),副标题(subtitle)等,当中每一个部分又有更细的參数配置,比方标 ...
- grunt api 文档
Grunt docs Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. 安装 grunt-cli npm install grunt-cli -g 注 ...
- FastDFS接口API文档说明
FastDFS接口API文档说明 时间:2012-03-17 来源:R9IT 作者:R9传奇 一.命令行的上传: 上传命令1. /usr/local/bin/fdfs_upload_file conf ...
随机推荐
- BZOJ4113 : [Wf2015]Qanat
设$f_i$表示用$i$个辅助井时代价的最小值,$x_i$表示此时最后一个辅助井的位置. 则$f_i$是关于$x_i$的一个二次函数,其中系数跟$f_{i-1}$有关,递推求出极值点即可. 时间复杂度 ...
- AngularJS学习笔记之directive—scope选项与绑定策略
From:http://www.linuxidc.com/Linux/2015-05/116924.htm scope:{}使指令与外界隔离开来,使其模板(template)处于non-inherit ...
- JS中关于比较运算符的问题(a===b)
之前也会碰到a===b和a==b的表达式,但都没有仔细的看资料,今天看canvas有关的书中提到了,就mark一下: a == b 说明:a与b相等: a ===b 说明:a与b相同,并且类型 ...
- db2代理和优化
DB2 的代理 (agent) 是位于 DB2 服务器中的服务于应用程序请求的一些进程或线程.当有外部应用程序连接至 DB2 实例提出访问请求时,DB2 的代理就会被激活去应答这些请求.一般 DB2 ...
- spring源码学习之路---IOC初探(二)
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 上一章当中我没有提及具体的搭 ...
- 基于S5PC100裸机程序之SPI(上)
作者:杨老师,华清远见嵌入式学院讲师. SPI作为应用最为广泛的通信总线协议之一,开发人员应当掌握,本章将介绍SPI总线协议的基本理论,以及S5PC100的SPI总线控制器的操作方法. 1. SPI总 ...
- [CareerCup] 18.5 Shortest Distance between Two Words 两单词间的最短距离
18.5 You have a large text file containing words. Given any two words, find the shortest distance (i ...
- GitHub上删除项目
1. 在自己的repositories中,选择要删除的项目,左击. 2. 选择 [Settings] 3. 选择 [Delete ** ] 4. 在弹出框中 输入 要删除的项目名,点击下方的按钮 ...
- val, lazy, def
val strVal = scala.io.Source.fromFile("test.txt").mkString //在strVal被定义的时候获取值,如果test.txt不存 ...
- php引用&符号详解——————给变量起小名
学习了这篇博客[http://blog.csdn.net/jiedushi/article/details/6428585] php中引用采用的是“写时拷贝”的原理,就是除非发生写操作,指向同一个地址 ...