Java入门——(5)Java API
①字符串都是对象
②一旦初始化就不可以被更改,因为是常量。
③通过String类的构造函数可以知道,将字节数组或字符转成字符串。
| 方法声明 | 功能描述 | 
| String() | 创建一个内容为空的字符串 | 
| String(char[] value) | 根据指定的字符数组创建对象 | 
| String(String value) | 根据指定的字符串内容创建对象 | 
| int indexOf(int ch) | int lastIndexOf(int ch) | 
| char charAt(int index) | boolean endsWith(String suffix) | 
| int length() | boolean equals(Object anObject) | 
| boolean isEmpty() | boolean startsWith(String prefix) | 
| boolean contains(CharSequence cs) | String toUpperCase() | 
| String toLowerCase() | String valueOf(int i) | 
| char[] toCharArray() | String replace(CharSequence oldstr,CharSequence newstr) | 
| String[] split(String regex) | String substring(int beginIndex) | 
| String substring(int beginIndex,int endIndex) | String trim() | 
示例:
 1 public class Example02 {
 2     public static void main(String[] args) {
 3         new Thread(new One()).start();
 4         new Thread(new Two()).start();
 5         new Thread(new Three()).start();
 6         new Thread(new Four()).start();
 7         new Thread(new Five()).start();
 8     }
 9 }
10 //字符串的基本操作
11 class One implements Runnable{
12     public void run() {
13         String s = "abcdedcba";
14         System.out.println("字符串的长度为:"+s.length());
15         System.out.println("字符串中第一个字符:"+s.charAt(0));
16         System.out.println("字符c中第一个出现的位置:"+s.indexOf('c'));
17         System.out.println("字符c中最后出现的位置:"+s.lastIndexOf('c'));
18         System.out.println("_____________");
19     }
20 }
21 //字符串的判断操作
22 class Two implements Runnable {
23     public void run() {
24         String s1 = "abcdedcba";
25         String s2 = "ABCDEDCBA";
26         System.out.println("字符串结尾是否是A:" + s1.endsWith("A"));
27         System.out.println("字符串s1与s2是否相同:" + s1.equals("ABCDEDCBA"));
28         System.out.println("字符串s1是否为空:" + s1.isEmpty());
29         System.out.println("字符串s1是否以abc开头:" + s1.startsWith("abc"));
30         System.out.println("字符串s1是否包含abc:" + s1.contains("abc"));
31         System.out.println("将字符串s1转为大写:" + s1.toUpperCase());
32         System.out.println("将字符串s2转为小写:" + s1.toLowerCase());
33         System.out.println("_____________");
34     }
35 }
36 //字符串的转换操作
37 class Three implements Runnable{
38     public void run() {
39         String s3 = "abcd";
40         System.out.print("将字符串转为字符数组后的结果");
41         char[] charArray=s3.toCharArray();
42         for (int i = 0;i<charArray.length;i++){
43             if(i!=charArray.length-1){
44                 System.out.print(charArray[i]+",");
45             }else
46                 System.out.println(charArray[i]);
47         }
48         System.out.println("将int值转换为String类型之后的结果:"+String.valueOf(123));
49         System.out.println("_____________");
50     }
51 }
52 //字符串的替换和去除空格操作
53 class Four implements Runnable{
54     public void run() {
55         String s = "itcase";
56         System.out.print("将it替换为cn.it的结果:"+s.replace("it","cn.it"));
57         String s4 = " i t c a s e ";
58         System.out.println("去除字符串两端空格后的结果:"+s4.trim());
59         System.out.println("去除字符串所有空格后的结果:"+s4.replace(" ",""));
60         System.out.println("_____________");
61
62     }
63 }
64 //字符串的截取和分割
65 class Five implements Runnable{
66     public void run() {
67         String str = "羽毛球-篮球-乒乓球";
68         System.out.println("从第五个字符截取到末尾的结果:"+str.substring(4));
69         System.out.println("从第五个字符截取到第六个字符的结果:"+str.substring(4,6));
70         System.out.print("分割后的字符串数组中的元素依次为:");
71         String[] strArray = str.split("-");
72         for (int i = 0;i<strArray.length;i++){
73             if(i!=strArray.length-1){
74                 System.out.print(strArray[i]+",");
75             }else {
76                 System.out.println(strArray[i]);
77             }
78         }
79         System.out.println("_____________");
80     }
81 }
运行结果:
字符串的长度为:9
字符串中第一个字符:a
字符c中第一个出现的位置:2
字符c中最后出现的位置:6
_____________
字符串结尾是否是A:false
字符串s1与s2是否相同:false
字符串s1是否为空:false
字符串s1是否以abc开头:true
字符串s1是否包含abc:true
将字符串s1转为大写:ABCDEDCBA
将字符串s2转为小写:abcdedcba
_____________
将字符串转为字符数组后的结果a,b,c,d
将int值转换为String类型之后的结果:123
_____________
从第五个字符截取到末尾的结果:篮球-乒乓球
从第五个字符截取到第六个字符的结果:篮球
分割后的字符串数组中的元素依次为:将it替换为cn.it的结果:cn.itcase去除字符串两端空格后的结果:i t c a s e
去除字符串所有空格后的结果:itcase
_____________
羽毛球,篮球,乒乓球
_____________
4、StringBuffer:字符串缓冲区,类似是一个字符容器,将任何数据转变字符串进行添加。
| StringBuffer append(char c) | StringBuffer insert(int offset ,String str) | 
| StringBuffer deleteCharAt(int index) | StringBuffer delete(int start, int end) | 
| StringBuffer replace(int start ,int end, String str) | void setCharAt(int index,char ch) | 
| String toString() | StringBuffer reverse() | 
示例:
 1 public class Example08 {
 2     public static void main(String[] args) {
 3     add();
 4     new Thread(new remove()).start();
 5     System.exit(0);
 6     new Thread(new alter()).start();
 7     }
 8     public static void add() {
 9         System.out.println("1、添加——————————————————");
10         StringBuffer sb = new StringBuffer();  //定义一个字符串缓冲区
11         sb.append("abcdefg");//在末尾添加字符串
12         System.out.println("append添加结果:" + sb);
13         sb.insert(2, "123");
14         System.out.println("insert添加结果:" + sb);
15     }
16 }
17 class remove implements Runnable{
18     @Override
19     public void run() {
20         System.out.println("2、删除——————————————————");
21         StringBuffer sb = new StringBuffer("abcdefg");
22         sb.delete(1,5);//指定范围删除
23         System.out.println("删除指定范围结果:"+sb);
24         sb.deleteCharAt(2);//指定位置删除
25         System.out.println("删除指定位置结果:"+sb);
26         sb.delete(0,sb.length());//清除缓存区
27         System.out.println("清空缓冲区结果:"+sb);
28     }
29 }
30 class alter implements Runnable{
31     @Override
32     public void run() {
33         System.out.println("3、修改——————————————————");
34         StringBuffer sb = new StringBuffer("abcdefg");
35         sb.setCharAt(1,'p');//修改指定位置字符
36         System.out.println("修改指定位置字符结果:"+sb);
37         sb.replace(1,3,"qq");//替换指定位置字符串或字符
38         System.out.println("替换指定位置字符串或字符结果:"+sb);
39         System.out.println("字符串翻转结果:"+sb.reverse());
40     }
41 }
运行结果:
1、添加——————————————————
append添加结果:abcdefg
insert添加结果:ab123cdefg
2、删除——————————————————
删除指定范围结果:afg
删除指定位置结果:af
清空缓冲区结果:
6、StringBuffer与String的区别
①String类表示的字符串是常量,一旦创建后,内容和长度都是无法改变的,而StringBuffer表示字符容器,其内容和长度都可以随时改变。
②String类覆盖了Object类的equals()方法,而StringBuffer类没有覆盖。
③String类对象可以用操作符+进行连接,而StringBuffer类对象之间不能。
| static void exit(int status) | static long gc() | 
| static long currentTimeMills() | static void arraycopy(Object src ,int srcPos,Object dest,int destPos,int length) | 
| static Properties getProperties() | static String getProperty(String key) | 
 1 public class Testt01 {
 2     public static void main(String[] args) {
 3         System.out.println("取绝对值:"+Math.abs(-2));
 4         System.out.println("向上取整:"+Math.ceil(2.1));
 5         System.out.println("四舍五入:"+Math.round(2.1));
 6         System.out.println("向下取整:"+Math.floor(2.1));
 7         System.out.println("取最大值:"+Math.max(3.2,2.1));
 8         System.out.println("取最小值:"+Math.min(3.21,2.1));
 9         System.out.println("反余弦:"+Math.acos(Math.PI/90));
10         System.out.println("反正弦:"+Math.asin(Math.PI/45));
11         System.out.println("反正切:"+Math.atan(12));
12         System.out.println(Math.atan2(12,12));
13         System.out.println("余弦:"+Math.cos(Math.PI/3));
14         System.out.println("正弦:"+Math.sin(30*Math.PI/180));//单位为弧度,30度用弧度表示(30*Math.PI/180);
15         System.out.println("自然对数的底数e:"+Math.E);
16         System.out.println("自然对数的底数e的n次方:"+Math.exp(12));
17         System.out.println("圆周率:"+Math.PI);
18         System.out.println("平方根:"+Math.sqrt(5));
19         System.out.println("生成一个大于等于0.0小于1.0的随机值:"+Math.random()); 
20         System.out.println("2的3次方:"+Math.pow( 2,3 )); 
21         System.out.println( System.currentTimeMillis() );//获得当前系统时间,运行程序最省内存 
22         System.out.println( new Date().getTime() );
23         System.out.println( Calendar.getInstance().getTime() );
24 
25    } 
26 }
运行结果:
1 取绝对值:2
2 向上取整:3.0
3 四舍五入:2
4 向下取整:2.0
5 取最大值:3.2
6 取最小值:2.1
7 反余弦:1.5358826490960904
8 反正弦:0.06987000497506388
9 反正切:1.4876550949064553
10 0.7853981633974483
11 余弦:0.5000000000000001
12 正弦:0.49999999999999994
13 自然对数的底数e:2.718281828459045
14 自然对数的底数e的n次方:162754.79141900392
15 圆周率:3.141592653589793
16 平方根:2.23606797749979
17 生成一个大于等于0.0小于1.0的随机值:0.3660454717733955
18 2的3次方:8.0
19 1498976435080
20 1498976435085
21 Sun Jul 02 14:20:35 CST 2017
| boolean nextBoolean() | double nextDouble() | float nextFloat() | 
| int nextInt() | int nextInt(int n) | long nextLong() | 
示例:
 1 public class Example16 {
 2     public static void main(String[] args) {
 3         new Thread(new One()).start();
 4         new Thread(new Two()).start();
 5         new Thread(new Three()).start();
 6     }
 7 }
 8 class One implements Runnable{
 9     public void run() {
10         Random r = new Random();//不传入种子
11 //        随机产生10个[0,100)之间的整数
12         for (int x=0;x<10;x++){
13             System.out.println(r.nextInt(100));
14         }
15         System.out.println("_____________");
16     }
17 }
18 class Two implements Runnable{
19     public void run() {
20         Random r = new Random(13);//不传入种子
21 //        随机产生10个[0,100)之间的整数
22         for (int x=0;x<10;x++){
23             System.out.println(r.nextInt(100));
24         }
25         System.out.println("_____________");
26     }
27 }
28 class Three implements Runnable{
29     public void run() {
30         Random r = new Random();
31         System.out.println("产生float类型随机数"+r.nextFloat());
32         System.out.println("产生0~100之间int类型随机数"+r.nextInt(100));
33         System.out.println("产生double类型随机数"+r.nextDouble());
34         System.out.println("_____________");
35     }
36 }
运行结果:
1 90
2 98
3 23
4 17
5 97
6 66
7 10
8 42
9 10
10 67
11 _____________
12 92
13 0
14 75
15 98
16 63
17 10
18 93
19 13
20 56
21 14
22 _____________
23 产生float类型随机数0.9580269
24 产生0~100之间int类型随机数44
25 产生double类型随机数0.13987266903473206
26 _____________
| int get(int field) | 返回指定日历字段的值,如 :calendar.(Calendar.YERR); | 
| void add(int field,int amount) | void set(int field,int value) | 
| void set(int year,int month,int date) | void set(int year,int month,int date,int hourOfDay,int minute,int second) | 
 1 public class Example {
 2     public static void main(String[] args) {
 3         new Thread(new One()).start();
 4         new Thread(new Two()).start();
 5     }
 6 }
 7 class One implements Runnable {
 8     public void run() {
 9         Date date = new Date();
10         Date date2 = new Date(966666666666L);
11         System.out.println(date);
12         System.out.println(date2);
13         System.out.println("--------------");
14     }
15 }
16 class Two implements Runnable {
17     public void run() {
18         Calendar calendar = Calendar.getInstance();//获取表示当前时间的Calendar
19         int year = calendar.get(Calendar.YEAR);
20         int month = calendar.get(Calendar.MONTH)+1;
21         int date = calendar.get(Calendar.DATE);
22         int hour = calendar.get(Calendar.HOUR);
23         int minute = calendar.get(Calendar.MINUTE);
24         int second = calendar.get(Calendar.SECOND);
25         System.out.println("当前时间为:"+year+"年"+month+"月"+date+"日"+hour+"时"+minute+"分"+second+"秒");
26         System.out.println("--------------");
27     }
28 }
运行结果:
Sun Jul 02 14:29:41 CST 2017
Sat Aug 19 14:31:06 CST 2000
-------------
当前时间为:2017年7月2日2时29分41秒
--------------
 1 public class Example {
 2     public static void main(String[] args) throws Exception{
 3 //        创建一个SimpleDateFormat 对象
 4         SimpleDateFormat df1 = new SimpleDateFormat(
 5                 "Gyyyy年MM月dd日:今天是yyyy年的第D天,E");
 6 //        SimpleDateFormat 对象的日期模板格式化Date对象
 7         System.out.println(df1.format(new Date()));
 8
 9         SimpleDateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日");
10         String dt = "2012年8月3日";
11 //      将字符串解析成Date对象
12         System.out.println(df2.parse(dt));
13     }
14 }
运行结果:
AD2017年07月02日:今天是2017年的第183天,Sun
Fri Aug 03 00:00:00 CST 2012
Java入门——(5)Java API的更多相关文章
- Java入门——初识Java
		
Java入门——初识Java 摘要:本文主要对Java这门编程语言进行简单的介绍. Java简介 说明 Java语言历时十多年,已发展成为人类计算机史上影响深远的编程语言,从某种程度上来看,它甚至超出 ...
 - Java入门:Java下载与安装方法
		
本文适合刚入门的Java编程的初学者阅读. JDK有两种下载方法,一个是官网下载,另一个是第三方网站下载.官网速度也许有点慢,慢的话可以考虑去第三方网站下载. 一.官网下载 1. 访问地址:http: ...
 - [Java入门笔记] Java语言简介
		
前言 学习Java有一段时间了,但是一直缺少一个系统的思想,现在重新通过书籍中.网上的文章,视频等资料,整理与回顾Java的知识点. 言归正传,让我们先从了解Java语言开始. Java语言的由来 J ...
 - Java入门——学会使用API
		
API是什么? API(Application Programming Interface)就是别人写的代码使用说明书. 下面是中文版API的使用具体截图. 1.左上角有个显示(图中"隐藏& ...
 - [Java入门笔记] Java语言基础(一):注释、标识符与关键字
		
注释 什么是注释? 注释是我们在编写代码时某段代码.某个方法.某个类的说明文字,方便大家对于代码的阅读.被注释的内容不会被编译.执行. Java的注释分为三种类型:单行注释.多行注释.文档注释. 单行 ...
 - Java入门:Java IO概括
		
I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道.在当今这个数据大爆炸时代,I/O 问题尤其突出,很容易成为一个性 ...
 - [Java入门笔记] Java语言基础(五):数组
		
简介 数组可用用于存储存储多个数据,Java的数组要求所有的数组元素具有一种相同的数据类型.一旦数组初始化完成,数组在内存中的空间被固定下来,长度不可改变,即使把数组的元素清空,所占用的空间依然被保留 ...
 - [Java入门笔记] Java语言基础(四):流程控制
		
流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下几种: 顺序结构 顺序结构,顾名思义,是指程序从上往下逐步顺序执行.中间没有任何的判断和跳转. 分支结构 Java提供两种分支结构: ...
 - [Java入门笔记] Java语言基础(三):运算符
		
简介 运算符是一种特殊的符号,运算符是通过一定的运算规则操作一个或多个操作数,并生成结果的特定符号,运算符和操作数的有效组合称为表达式. Java中运算符主要分为以下几类: 赋值运算符 算术运算符 关 ...
 - [Java入门笔记] Java语言基础(二):常量、变量与数据类型
		
常量与变量 什么是常量和变量 常量与变量都是程序在运行时用来存储数据一块内存空间 常量: 常量的值在程序运行时不能被改变,Java中声明常量必须使用final关键字.常量还可以分为两种意思: 第1种意 ...
 
随机推荐
- 设备像素比dpr介绍
			
首先介绍一下概念 devicePixelRatio其实指的是window.devicePixelRatio window.devicePixelRatio是设备上物理像素和设备独立像素(device- ...
 - iOS中UIWebView执行JS代码(UIWebView)
			
iOS中UIWebView执行JS代码(UIWebView) 有时候iOS开发过程中使用 UIWebView 经常需要加载网页,但是网页中有很多明显的标记让人一眼就能看出来是加载的网页,而我们又不想被 ...
 - Bootstrap列表组
			
前面的话 列表组是Bootstrap框架新增的一个组件,可以用来制作列表清单.垂直导航等效果,也可以配合其他的组件制作出更漂亮的组件.本文将详细介绍Bootstrap列表组 基础列表组 基础列表组,看 ...
 - Educational Codeforces Round 21 A-E题题解
			
A题 ............太水就不说了,贴下代码 #include<string> #include<iostream> #include<cstring& ...
 - 网站waf检测
			
WAFW00F WAFW00F识别和指纹Web应用防火墙(WAF)产品. 其工作原理是首先通过发送一个正常http请求,然后观察其返回有没有一些特征字符,若没有在通过发送一个恶意的请求触发waf拦截来 ...
 - Eclipse添加struts2
			
参照:http://jingyan.baidu.com/article/915fc414fd94fb51394b208e.html 一.插件下载:http://struts.apache.org/do ...
 - EntityManager 实例化方法
			
Configure the EntityManager via a persistence.xml file <persistence xmlns="http://java.sun.c ...
 - [IB配置]PeopleSoft如何重置网关属性administrator密码
			
当您在登陆主菜单>PeopleTools>继承代理程序>配置>网关>网关设置属性在尝试打开网关属性配置时候,需要输入账号:administrator以及密码,有时候在升级 ...
 - 小哈学Python第二课:Hello Word
			
Python入门 1.Hello World 2.Hello World
 - 将txt文档按行分割
			
昨天遇到了一个需求,需要将txt文档按行分割,并指定了行数, 最近在用python,就在网上搜了一下,在参考了http://blog.csdn.net/zhang_red/article/detail ...