①字符串都是对象
②一旦初始化就不可以被更改,因为是常量。
③通过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 2017Sat 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中API的详细介绍的详细内容。更多信息请关注PHP中文网其他相关文章!