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文档 、 字符串基本操作的更多相关文章

  1. Day01:API文档 / 字符串基本操作

    JDK API 什么是JDK API? JDK中包含大量的API类库,所谓AP就是一些写好的,可提供直接调用的功能(在Java语言中,这些功能以类的形式封装). JDK API包含的类库功能强大,经常 ...

  2. jQuery MiniUI开发系列之:使用API文档

    jQuery MiniUI在组件设计上,是简约.独立的,没有复杂的继承体系. 比如使用DataGrid,可以在api文档的datagrid部分,查找到datagrid的所有属性.方法.事件,而无需关注 ...

  3. 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 ...

  4. HighCharts 详细使用及API文档说明

    一.HighCharts开发说明: HighCharts开发实际上配置HighCharts每个部分,比如配置标题(title),副标题(subtitle)等,其中每个部分又有更细的参数配置,比如标题下 ...

  5. GhostDoc:生成.NET API文档的工具 (帮忙文档)

    在 Sandcastle:生成.NET API文档的工具 (帮忙文档) 后提供另一个生成API文档的工具.   1) 准备工作 安装GhostDoc Proc. 收费的哦.... 这个工具的优势是不像 ...

  6. 使用jsdoc-toolkit来自动生成js api文档

    近来前端组小盆友开发的类库越来越多,很多情况下彼此不知道写了些什么方法,为了更好的合作提高工作效率,找了个比较好的api文档生成方法.使用jsdoc-toolkit来自动生成js api文档. 一.  ...

  7. HighCharts 具体使用及API文档说明

    一.HighCharts开发说明: HighCharts开发实际上配置HighCharts每一个部分,比方配置标题(title),副标题(subtitle)等,当中每一个部分又有更细的參数配置,比方标 ...

  8. grunt api 文档

    Grunt docs Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. 安装 grunt-cli npm install grunt-cli -g 注 ...

  9. FastDFS接口API文档说明

    FastDFS接口API文档说明 时间:2012-03-17 来源:R9IT 作者:R9传奇 一.命令行的上传: 上传命令1. /usr/local/bin/fdfs_upload_file conf ...

随机推荐

  1. hbase regionserver挂掉的问题

    之前regionserver老挂,今天终于找到原因了. 是程序中一个函数不停的构造HTable.导致消耗内存.导致gc full. 这篇文章中得到提示:http://www.cnblogs.com/p ...

  2. iOS中为网站添加图标到主屏幕

    1 <link rel="apple-touch-icon-precomposed" href="icon.png"/> 2 <link re ...

  3. 【BZOJ2456】mode 神奇的卡内存题

    以后把题解放在前面,估计没人看题解先看题... 内存1M,4个int(其实对内存的概念十分模糊),众数即为出现次数最多的数,可以用抵消的思想(但是众数不是可以是一大坨么...) #include &l ...

  4. 【BZOJ3223】 Tyvj 1729 文艺平衡树 Splay

    Description   您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2  ...

  5. BZOJ3105: [cqoi2013]新Nim游戏 博弈论+线性基

    一个原来写的题. 既然最后是nim游戏,且玩家是先手,则希望第二回合结束后是一个异或和不为0的局面,这样才能必胜. 所以思考一下我们要在第一回合留下线性基 然后就是求线性基,因为要取走的最少,所以排一 ...

  6. Cortex-M0(NXP LPC11C14)启动代码分析

    作者:刘老师,华清远见嵌入式学院讲师. 启动代码的一般作用 1.堆和栈的初始化: 2.向量表定义: 3.地址重映射及中断向量表的转移: 4.初始化有特殊要求的断口: 5.处理器模式: 6.进入C应用程 ...

  7. javascrit2.0完全参考手册(第二版) 第2章第4节 基本的数据类型

    每一个变量都有一个确定的类型表明它存储什么样的数据.js基本的数据类型有strings字符串.numbers数字.Booleans布尔类型.字符串是使用双引号或单引号包含的一串字符:数字包括整数或浮点 ...

  8. About_AJAX_02

    学习AJAX基础: 首先要:掌握AJAX技术.掌握AJAX开发步骤.掌握采用AJAX进行实例开发 AJAX应用到的技术: AJAX(Asynchronous JavaScript And XML)涉及 ...

  9. Watering Grass

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/E 题意: 给定一条草坪,草坪上有n个喷水装置.草坪长 ...

  10. java线程的简单实现及方法

    java线程: 线程是一个程序内部的顺序控制流. cpu实际上在一个时间点上,只执行一个.只不过我们把cpu分成了多个时间片,由于速度很快,我们看起来像是多个线程.. 就像你的时间分成几片,这样 整体 ...