本篇內容介紹了“String類的常用方法有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
字符串是常量,創建之后不可改變
字符串字面值存儲在字符串池中,可以共享。
String s = "Hello";產生一個對象,字符串池存儲
String s = new String ("Hello");//產生兩個對象,堆,池各存儲一個
public int length():返回字符串長度
String str = "java是最好的語言"; System.out.println(str.length());//獲取字符串長度
public char charAt(int index):根據下標獲取字符
String str = "java是世界上最好的語言"; System.out.println(str.charAt(str.length()-1));//獲取字符串最后一位
public boolean contains(String str):判斷當前字符串中是否包含str
String str = "java是世界上最好的語言";
System.out.println(str.contains("java"));//查看字符串中是否包含"java".public char[] toStringArray():將字符串轉換成數組
public int indexOf(String str):查找str首次出現的下標,存在,則返回該下標;不存在,則返回-1。
public int lastIndexOf(String str):查找字符串在當前字符串中最后一次出現的下標索引
public String trim():去掉字符串前后的空格
public String toUpperCase():將小寫轉換成大寫
public boolean endWith(String str):判斷字符串是否以str結尾
public boolean startWith(String str):判斷字符串是否以str開頭
public String replace(char oldChar,char newChar);將舊字符串替換成新字符串
public String[] split(String str):根據str做拆分
String say = "java is the best progaming language,java xiang";
String[] arr = say.split("[ ,]+");
System.out.println(arr.length);
for(String string : arr){
System.out.println(string);
}public String subString():對字符串進行截取
StringBuffer:可變長字符串,JDK1.0提供了,運行效率慢、線程安全
StringBuilder:可變長字符串,JDK5.0提供,運行效率快、線程不安全。
append();追加 :在字符串末尾追加
insert();添加 :在指定位置添加
replace();替換 :在指定位置替換
delete(); :刪除
public class TestDemo01 {
public static void main(String [] args){
StringBuffer sb = new StringBuffer();
//1 append();追加
sb.append("java世界第一");
System.out.println(sb.toString());
sb.append("真香");
System.out.println(sb.toString());
//2 insert();添加
sb.insert(0,"前面:");
System.out.println(sb.toString());
sb.replace(0,3,"開始:");//替換
System.out.println(sb.toString());
sb.delete(0,3);//刪除
System.out.println(sb.toString());
}
}StringBuilder效率高于StringBuffer
public class TestDemo02 {
public static void main(String [] args){
long start = System.currentTimeMillis();
StringBuffer sb = new StringBuffer();
for(int i = 0; i < 99999; i++){
sb.append(i);
}
long end = System.currentTimeMillis();
System.out.println("StringBuffer用時:"+(end - start));
System.out.println("=============================");
long start1 = System.currentTimeMillis();
StringBuilder sb1 = new StringBuilder();
for (int i = 0; i < 99999; i++) {
sb1.append(i);
}
long end1 = System.currentTimeMillis();
System.out.println("StringBuilder用時:"+(end1 - start1));
if((end-start)>(end1-start1)){
System.out.println("StringBuilder效率高于StringBuffer");
}else{
System.out.println("StringBuffer效率高于StringBuilder");
}
}
}很多實際應用中需要精確 運算,而double是近似值存儲,不在符合要求,需要借助BigDecimal
位置:java.math包中
作用:精確計算浮點數
創建方式:BigDecimal bd = new BigDecimal("1.0");
方法:
BigDecimal add(BigDecimal bd) 加
BigDecimal subtract(BigDecimal bd) 減
BigDecimal multiply(BigDecimal bd) 乘
BigDecimal divide(BigDecimal bd) 除
import java.math.BigDecimal;
public class TestDemo03 {
public static void main(String[] args) {
double d1 = 1.0;
double d2 = 0.9;
System.out.println(d1 - d2);
//BigDecimal,大的浮點數精確計算
BigDecimal bd1 = new BigDecimal("1.0");
BigDecimal bd2 = new BigDecimal("0.9");
//減法 subtract();
BigDecimal r1 = bd1.subtract(bd2);
System.out.println(r1);
//加法 add();
BigDecimal r2 = bd1.add(bd2);
System.out.println(r2);
//乘法 multiply();
BigDecimal r3 = bd1.multiply(bd2);
System.out.println(r3);
//除法 divide();
BigDecimal r4 = new BigDecimal("1.4").subtract(new BigDecimal("0.5")).divide(new BigDecimal("0.9"));
//(1.4 - 0.5)/0.9
System.out.println(r4);
}
}Date表示特定的瞬間,精確到毫秒。Date類中的大部分方法都已經被Calendar類中的方法所取代
時間單位
1秒 = 1000毫秒
1毫秒 = 1000微秒
1 微秒 = 1000納秒
Calendar提供了獲取或設置各種日歷字段的方法
構造方法
protected Calendar() :由于修飾符是protected,所以無法直接創建該對象
其他方法
| 方法名 | 說明 |
|---|---|
| static Calendar getInstance() | 使用默認時區和區域獲取日歷 |
| void set (int year,int month,int date,int hourofday,int minute,int second) | 設置日歷的年、月、日、時、分、秒 |
| int get(int field) | 返回給定日歷字段的值、字段比如年、月、日等 |
| void setTime(Date date) | 用給定的Date設置此日歷的時間。Date-Calendar |
| Date getTime() | 返回一個Date表示此日歷的時間。Calendar-Date |
| void add(int field, int amount) | 按照日歷的規則,給指定字段添加或減少時間量 |
| long getTimeInMillies() | 毫秒為單位返回該日歷的時間值 |
SimpleDateFormat是一個以語言環境有關的方式來格式化和解析日期的具體類
進行格式化(日期 --> 文本)、解析(文本 --> 日期)
常用的時間模式字母
| 字母 | 日期或時間 | 示例 |
|---|---|---|
| y | 年 | 2019 |
| M | 年中月份 | 08 |
| d | 月中天數 | 10 |
| H | 1天中小時數(0-23) | 22 |
| m | 分鐘 | 16 |
| s | 秒 | 59 |
| S | 毫秒 | 367 |
public static void main(String [] args)throws Exception{
// 創建SimpleDateFormat對象 y 年 M月
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
//創建Date對象
Date date = new Date();
//格式化Date(把日期轉換成字符串)
String str = sdf.format(date);
System.out.println(str);
//解析(把字符串轉換成日期)
Date date2 = sdf.parse("1999/02/24");
System.out.println(date2);
}System系統類,主要用于獲取系統的屬性數據和其他操作,構造方法私有的
| 方法名 | 說明 |
|---|---|
| static void arraycopy(...) | 復制數組 |
| static long currentTimeMillis(); | 獲取當前系統時間,返回的是毫秒值 |
| static void gc(); | 建議JVM趕快啟動垃圾回收器回收垃圾 |
| static void exit(int status); | 退出jvm,如果參數是0表示正常退出jvm,非0表示異常退出jvm |
“String類的常用方法有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。