您好,登錄后才能下訂單哦!
本篇內容介紹了“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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。