API文档 、 字符串基本操作    

文档注释

  1. package day01;
  2. /**
  3. * 文档注释只能定义在三个地方:
  4. * 类,方法,常量
  5. *
  6. * 文档注释是功能注释,用来说明功能作用
  7. * 在类上使用的目的是说明当前类的设计目的
  8. *
  9. * @author adminitartor
  10. * @version 1.0
  11. * @see java.lang.String
  12. * @since JDK1.0
  13. *
  14. */
  15. public class DocApiDemo {
  16. /**
  17. * sayHello方法中的问候语
  18. */
  19. public static final String INFO = "你好!";
  20.  
  21. /**
  22. * 对给定用户添加一个问候语
  23. * @param name 给定的用户名
  24. * @return 添加了问候语的字符串
  25. */
  26. public String sayHello(String name){
  27. return "你好!"+name;
  28. }
  29. }

DocApiDemo.java

频繁修改字符串带来的性能开销问题

  1. package day01;
  2. /**
  3. * 频繁修改字符串带来的性能开销问题
  4. * @author adminitartor
  5. *
  6. */
  7. public class StringDemo2 {
  8. public static void main(String[] args) {
  9. String str = "a";
  10. for(int i=0;i<1000000;i++){
  11. str += "a";
  12. }
  13.  
  14. }
  15. }

StringDemo.java

字符串常量池

  1. package day01;
  2.  
  3. import java.util.Random;
  4.  
  5. /**
  6. * 字符串常量池
  7. * java对字符串做了一个优化措施,即:使用字面量形式
  8. * 创建字符串对象时,会将该对象存入常量池缓存起来,
  9. * 当再次创建该内容字符串时会重用对象,减少内存开销。
  10. * 正因为重用相同内容字符串对象,所以该对象变为"公用"
  11. * 对象,那么字符串被规定为是不便对象,即字符串对象一
  12. * 旦创建内容不可改变,若改变必定创建新对象。
  13. * @author adminitartor
  14. *
  15. */
  16. public class StringDemo1 {
  17. public static void main(String[] args) {
  18. String s1 = "123abc";
  19. //字面量形式创建字符串会重用之前创建的对象
  20. String s2 = "123abc";//重用s1创建的对象
  21.  
  22. System.out.println(s1==s2);//true
  23.  
  24. String s3 = "123abc";
  25. System.out.println(s1==s3);//true
  26.  
  27. //new 一定创建新对象
  28. String s4 = new String("123abc");
  29. System.out.println(s1==s4);//false
  30.  
  31. //修改内容会创建新对象
  32. s1 = s1+"!";
  33. System.out.println(s1);//123abc!
  34. System.out.println(s2);//123abc
  35. System.out.println(s1==s2);//false
  36.  
  37. /*
  38. * 编译器在编译源程序时当发现一个计算表达式
  39. * 计算符号两边的内容都是字面量时,会直接运算
  40. * 并将结果编译到class文件中,所以下面的代码
  41. * 在class文件中的样子为:
  42. *
  43. * String s5 = "123abc";
  44. *
  45. * 所以s5会重用s2对象
  46. */
  47. String s5 = "123"+"abc";
  48. System.out.println(s2==s5);
  49.  
  50. String s = "123";
  51. String s6 = s + "abc";
  52. System.out.println(s2==s6);
  53.  
  54. String s7 = 1+"23"+"abc";
  55. System.out.println(s2==s7);
  56.  
  57. String s8 = '1'+23+"abc";
  58. System.out.println(s2==s8);
  59.  
  60. }
  61.  
  62. }

StringDemo.java

截取指定范围内的字符串

  1. package day01;
  2. /**
  3. * String substring(int start,int end)
  4. * 截取指定范围内的字符串
  5. * JAVA API有一个特点,通常使用两个数字表示范围
  6. * 时都是"含头不含尾"的
  7. * @author adminitartor
  8. *
  9. */
  10. public class String_Substring {
  11. public static void main(String[] args) {
  12. // 01234567890123
  13. String str = "www.oracle.com";
  14. //截取域名
  15. String sub = str.substring(4, 10);
  16. System.out.println(sub);
  17.  
  18. sub = str.substring(4);
  19. System.out.println(sub);
  20.  
  21. //通用截取域名操作
  22. str = "www.sohu.com.cn";
  23. int s = str.indexOf(".")+1;
  24. int e = str.indexOf(".",s);
  25. sub = str.substring(s, e);
  26. System.out.println(sub);
  27.  
  28. }
  29. }

String_substring

将当前字符串中的英文部分转换为全大写或全小写

  1. package day01;
  2. /**
  3. * String toUpperCase()
  4. * String toLowerCase()
  5. * 将当前字符串中的英文部分转换为全大写或全小写
  6. * @author adminitartor
  7. *
  8. */
  9. public class String_ToUpperCase {
  10. public static void main(String[] args) {
  11. String str = "我爱Java";
  12. String upper = str.toUpperCase();
  13. System.out.println(upper);
  14.  
  15. String lower = str.toLowerCase();
  16. System.out.println(lower);
  17. }
  18. }

String_ToUpperCase.java

去除当前字符串两边的空白字符

  1. package day01;
  2. /**
  3. * String trim()
  4. * 去除当前字符串两边的空白字符
  5. * @author adminitartor
  6. *
  7. */
  8. public class String_Trim {
  9. public static void main(String[] args) {
  10. String str = " hello ";
  11. System.out.println(str);
  12. str = str.trim();
  13. System.out.println(str);
  14. }
  15. }

String_Trim.java

将java中其他类型转换为一个字符串

  1. package day01;
  2. /**
  3. * String提供了一组静态方法valueOf
  4. * 作用是将java中其他类型转换为一个字符串
  5. * 常用来将基本类型转换为字符串
  6. * @author adminitartor
  7. *
  8. */
  9. public class String_ValueOf {
  10. public static void main(String[] args) {
  11. int a = 123;
  12. String iStr = String.valueOf(a);
  13. System.out.println(iStr+4);
  14.  
  15. double d = 123.123;
  16. String dStr = String.valueOf(d);
  17. System.out.println(dStr+4);
  18.  
  19. iStr = a + "";
  20.  
  21. }
  22. }

String_ValueOf.java

该类为了解决频繁修改字符串带来的性能损耗问题

  1. package day01;
  2. /**
  3. * java.lang.StringBuilder
  4. * 该类为了解决频繁修改字符串带来的性能损耗问题
  5. * 其提供了编辑字符串的相关方法:
  6. * 增,删,改,插
  7. * @author adminitartor
  8. *
  9. */
  10. public class StringBuilderDemo {
  11. public static void main(String[] args) {
  12. String str = "努力学习java";
  13. /*
  14. * 想修改字符串则创建StringBuilder并将
  15. * 要修改的字符串内容传入。
  16. */
  17. StringBuffer builder
  18. = new StringBuffer(str);
  19.  
  20. /*
  21. * StringBuilder append(String str)
  22. * 在当前字符串末尾追加给定内容
  23. *
  24. * 努力学习java
  25. * 努力学习java,为了找个好工作!
  26. */
  27. builder.append(",为了找个好工作!");
  28. //toString可以获取builder内部的字符串
  29. str = builder.toString();
  30. System.out.println(str);
  31.  
  32. /*
  33. * StringBuilder replace(int s,int e,String str)
  34. * 将当前字符串指定范围内的字符串内容替换为给定内容
  35. *
  36. * 努力学习java,为了找个好工作!
  37. * 努力学习java,就是为了改变世界!
  38. */
  39. builder.replace(9, 16, "就是为了改变世界");
  40. System.out.println(builder.toString());
  41.  
  42. /*
  43. * StringBuilder delete(int s,int e)
  44. * 删除指定范围内的字符串
  45. *
  46. * 努力学习java,就是为了改变世界!
  47. * ,就是为了改变世界!
  48. */
  49. builder.delete(0, 8);
  50. System.out.println(builder.toString());
  51.  
  52. /*
  53. * StringBuilder insert(int index,String str)
  54. * 在指定位置插入指定字符串
  55. *
  56. * ,就是为了改变世界!
  57. * 活着,就是为了改变世界!
  58. */
  59. builder.insert(0, "活着");
  60. System.out.println(builder.toString());
  61.  
  62. //反转字符串
  63. builder.reverse();
  64. System.out.println(builder.toString());
  65. }
  66. }

StringBuilderDemo.java

使用StringBuilder修改字符串的效率

  1. package day01;
  2. /**
  3. * 使用StringBuilder修改字符串的效率
  4. * @author adminitartor
  5. *
  6. */
  7. public class StringBuilderDemo2 {
  8. public static void main(String[] args) {
  9. StringBuilder builder
  10. = new StringBuilder("a");
  11. for(int i=0;i<1000000;i++){
  12. builder.append("a");
  13. }
  14. }
  15. }

StringBuilderDemo2.java

返回当前字符串中指定位置处的字符

  1. package day01;
  2. /**
  3. * char charAt(int index)
  4. * 返回当前字符串中指定位置处的字符
  5. * @author adminitartor
  6. *
  7. */
  8. public class String_CharAt {
  9. public static void main(String[] args) {
  10. // 0123456789012345
  11. String str = "thinking in java";
  12. char c = str.charAt(9);
  13. System.out.println(c);//'i'
  14.  
  15. /*
  16. * 检测回文
  17. * 上海自来水来自海上
  18. */
  19. str = "上海自来水自来海上";
  20. for(int i=0;i<str.length()/2;i++){
  21. if(str.charAt(i)!=
  22. str.charAt(str.length()-1-i)
  23. ){
  24. System.out.println("不是回文");
  25. return;//结束方法
  26. }
  27. }
  28. System.out.println("是回文");
  29. }
  30. }

String_CharAt.java

查找给定字符串在当前字符串中的位置(下标)

  1. package day01;
  2. /**
  3. * int indexOf(String str)
  4. * 查找给定字符串在当前字符串中的位置(下标)
  5. * 若当前字符串不含有给定内容则返回指为-1
  6. * @author adminitartor
  7. *
  8. */
  9. public class String_IndexOf {
  10. public static void main(String[] args) {
  11. //java编程思想
  12. // 0123456789012345
  13. String str = "thinking in java";
  14.  
  15. int index = str.indexOf("in");
  16. System.out.println("index:"+index);
  17. //从指定位置处开始查找"in"第一次出现的位置
  18. index = str.indexOf("in",3);
  19. System.out.println("index:"+index);
  20. //查找最后一次出现"in"的位置
  21. index = str.lastIndexOf("in");
  22. System.out.println("index:"+index);
  23.  
  24. }
  25. }

String_IndexOf.java

返回当前字符串的长度(字符个数)

  1. package day01;
  2. /**
  3. * int length()方法
  4. * 返回当前字符串的长度(字符个数)
  5. * @author adminitartor
  6. *
  7. */
  8. public class String_Length {
  9. public static void main(String[] args) {
  10. String str = "我爱java";
  11. int len = str.length();
  12. System.out.println("len:"+len);
  13. }
  14. }

String_Length.java

判断当前字符串是否是以给定字符串起始或结尾的

  1. package day01;
  2. /**
  3. * boolean startsWith(String str)
  4. * boolean endsWith(String str)
  5. * 判断当前字符串是否是以给定字符串起始或结尾的
  6. * @author adminitartor
  7. *
  8. */
  9. public class String_StartsWith {
  10. public static void main(String[] args) {
  11. String str = "thinking in java";
  12. boolean starts = str.startsWith("think");
  13. System.out.println("starts:"+starts);
  14.  
  15. boolean ends = str.endsWith("ava");
  16. System.out.println("ends:"+ends);
  17. }
  18. }

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. BZOJ2080 : [Poi2010]Railway

    如果存在$k$使得$i<j<k$,且$a[k]<a[i]<a[j]$,那么$i$和$j$不能在一个栈中. 设$b[i]=\min(a[i..n])$,如果$b[j]<a[ ...

  2. ajax、post、get实例

    html代码: <!DOCTYPE HTML><html lang="en-US"><head> <meta charset=" ...

  3. 前端构建之gulp与常用插件

    gulp是什么? http://gulpjs.com/ 相信你会明白的! 与著名的构建工具grunt相比,有什么优势呢? 易于使用,代码优于配置 高效,不会产生过多的中间文件,减少I/O压力 易于学习 ...

  4. android 第三方 图表

    1.XCL-Charts 直接利用Canvas api画出图形,各有好处. XCL-Chart尽量把图的绘制逻辑封装在类中,而把绘制相关的各 个元素开放出来,目的是在保证开发效率的同时,给程序员足够多 ...

  5. 设置 tableview 的背景颜色,总是不生效

    1.只设置了背景图片,却忘记了取消掉 cell 的背景颜色(可以通过层次结构来观察) UIImageView *bgView = [[UIImageView alloc]initWithFrame:s ...

  6. Linux 下安装mysql 链接库

    1.mysql 客户端 开发 链接库 1.1)CentOS yum install mysql-devel

  7. php by oneself

    在php里面写html代码真的很麻烦,最近学到了一个新的方法: <html> <head> <title>PHP</title> <meta ht ...

  8. python 数据类型基础

    Python3 运算符 什么是运算符? 本章节主要说明Python的运算符.举个简单的例子 4 +5 = 9 . 例子中,4 和 5 被称为操作数,"+" 称为运算符. 1.算术运 ...

  9. 数位DP HDU3555

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submi ...

  10. bzoj3504: [Cqoi2014]危桥--最大流

    题目大意:给张无向图,有两个人a,b分别从各自的起点走向各自的终点,走A,B个来回,图里有些边只能走两次,求问是否能满足a,b的需求 按照题目给的表建图 S连a1,b1 a2,b2连T 跑最大流看是否 ...