【安博培訓技術】Java2 陣列、字串、常用工具類20130918
熟練使用一維陣列存取資料,瞭解多維陣列的使用
熟練掌握String與StringBuffer操作的幾個常見函式
熟練使用包裝類、Math類、日期類、Random類、System和Runtime類
什麼是陣列?
陣列是用來儲存一組相同資料型別資料的資料結構
陣列是一種引用型別。
由型別相同的元素組成的有順序的資料集合
陣列是固定的不能擴充套件
陣列的元素可以是簡單型別的資料,也可以是引用型別的資料
宣告陣列
陣列的宣告包括陣列名和所包含的資料型別
通用的一維陣列的宣告格式是:
資料型別 陣列名[];
或 資料型別[] 陣列名;
舉例:
int array_int[ ];
String[ ] str;
注意:
可以儲存基本資料型別或物件,介面
宣告中不用寫元素個數
陣列名符合識別符號規定
建立陣列
建立陣列:利用new 來為陣列型變數分配記憶體空間
格式:陣列名=new 陣列元素型別[元素個數]
舉例:
array_int=new int[10];
注意:
必須分配記憶體後才能使用陣列
兩步可以合併,如:
String[ ] str=new String[10];
陣列初始化
建立陣列後,系統會個每個元素一個預設值
也可以自己賦值
int array[] = new int[5];
for(int i = 0;i<array.length;i++){
array[i] = i;
}
或
array[3] = 45;
宣告並初始化陣列
可以在宣告陣列時給陣列元素一個初始值
舉例:
int[] array_int={1,2,3,4,5,6};
String str[]={“we”,”are”,good”};
注意:
可以不指定陣列大小
可稱為靜態分配陣列空間
靜態分配陣列空間只能在陣列宣告的同時使用
int[] arr;
arr = {1,2,4,5};
int[] arr;
arr =new int[]{12,34,46,25};
int[] arr;
arr = new int[3];
arr = {1,2,3};
int[] arr;
arr[0] = 1; arr[1] = 2; arr[2] = 3;
命令列引數
在程式執行過程中,可以通過傳遞命令列引數將資訊傳遞至 main( ) 方法
可以通過 String[ ] 引數訪問這些引數
class ComndLineArg1 {
public static void main(String args[ ]) {
for(int i=0;i<args.length;i++) {
System.out.println(args[i]);
}
}
}
宣告陣列(二維)
通用的二維陣列的宣告格式是:
元素型別 陣列名[][];
元素型別[][] 陣列名;
元素型別[] 陣列名[];
舉例:
float a[][];
int[][] nums;
int[] qty[];
注意:
理解為陣列的陣列
初始化二維陣列
float a[][]={{1,2},{3,4},{4,4,5}};
int[][] nums=new int[2][3];
nums[0][0]=21;
int[] qty[]=new int[3][];
qty[0]=new int[2]
qty[1]=new int[1]
qty[2]=new int[4]
字串
建構函式:
public String() //建立空串
public String(String value) //以value的拷貝建一個新串
public String(char[] value) //以value中的字元建一個新串
public String(char[] value, int from, int count) //
public String(byte[] value, int hibyte) //以value字元陣列建一個新串,為8位,以不提倡使用
public String(byte[] value, int from, int count,String charset)
public String(StringBuffer buffer) //以StringBuffer建立新串
如:
字串
建立一個 String 類的例項:
String strName1 = “Humpty dumpty”; //字串字面量
String strName2 = new String("Egg");
兩個或多個字串可以用“+”運算符合並起來。例如:
strName3 = strName1+ " is the name of an " + strName2;
字串的長度可以通過 String 類中的函式計算。例如:
String strName4={‘a’,’c’,’b’};
也可將數字新增到字串型別中。例如:
String strVar = "Mark" + 1;
例子:StringConstructor.java
String 類方法
字串的長度可以通過 String 類中的函式計算。
public int length()
察看字串的開始是否同某個串相同
public boolean startsWith(String s)
察看字串的結尾是否同某個串相同
public boolean endsWith(String s)
查詢字串:返回字串中某個特定子字串首次出現的索引
public int indexOf(String anotherString) //返回首次出現位置
public int indexOf(String anotherString,int startpoint)
字串檢索
//指定起始檢索位置。若沒檢索到,返回-1
如: String tom=“I am a good cat”;
tom.indexOf(97) //2
tom.indexOf(97,3) //5
tom.lastIndexOf(97) //13
tom.indexOf(97,3) //13
得字串的子串
String類中的抽取字串函式:
public String substring(int index)
public String substring(int start, int end)
如:
String jerry=“I love Tom”,s1,s2;
s1=jerry.substring(2);//love Tom
s2=jerry.substring(2,5);//lov
替換字串中的字元
String類中的函式:
public String replace(char oldchar,char newchar)
//串中的舊字元全部用新字元代替
如:String jerry=“I mist theep”,s1;
s1=jerry.replace(‘t’,’s’);//l miss sheep
去掉字串的前後空格
String類中的函式:
public String trim( )
如:
String jerry=“ I love Tom ”,s1;
s1=jerry.trim();//l love Tom
例子:StringTest.java StringMethods.java
字串的不可變
String s1=“I you He”;
s1.substring(2,6);
s1=s1+” am”;
String s2=s1+” Java”;
s2.replace(‘J’,’j’);
String s3=“I am ”;
s3.trim();
String s4=s1+s2+s3;
s4?
字串的比較(一)
public boolean equals(Object ob) //
public boolean equalsIgnoreCase(String anotherString) // 忽//大小寫
如:
String tom=“we are students”;
String mary=“We are students”;
String jerry=“We are students”;
tom.equals(mary) //false
mary.equals(jerry) //true
tom.equalsIgnoreCase(mary) //true
mary==jerry?
字串比較(二)
String s1=“Hello”;
String s2=“Hello”;
String s3=new String(“Hello”);
String s4=new String(“Hello”);
結果?
s1==s2,s2==s3,s3==s4
s1.equals(s2),s1.equals(s3),s1.equals(s4)
字串比較(三)
字串按字典序比較大小(三)
public int compareTo(String anotherString)
public int compareToIgnoreCase(String anotherString)
返回型別為整型量
例如:
String tom=“we are students”;
String mary=“We are students”;
String jerry=“We are students”;
tom. compareTo(mary) //正值
mary. compareTo(tom) //負值
mary. compareTo(jerry) //0
tom. compareToIgnoreCase(mary) //0
把數值轉換成字串
Java.lang包中的String類中的靜態函式把各種型別的數值轉換成字串
public static String valueOf(boolean b);
public static String valueOf(char c);
public static String valueOf(int i);
public static String valueOf(long l);
public static String valueOf(float f);
public static String valueOf(double d);
如:float f=12.34f;
String str=String.valueOf(f);
其他型別物件轉換成字串
各包裝類中的靜態函式把各種型別的物件轉換成字串
public static String toString();
把字串轉換成數值
Java.lang包中的包裝類中的靜態函式把字串轉換成相應型別的數值
轉換為整型:用Integer.parseInt(String s)
轉換為長整型:用Long.parseInt(String s)
轉換為浮點型:用Float.parseFloat(String s)
或Float.valueOf(String s).floatValue()
轉換為雙精型:
用Double.valueOf(String s).doubleValue()
舉例:
int x=Integer.parseInt(“1234”);
long l=Long.parseLong(“9876542”);
float f=Float.valueOf(“123.45”).floatValue()
StringBuffer(字串緩衝)
StringBuffer() 構造一個其中不帶字元的字串緩衝區,其初始容量為 16 個字元。
StringBuffer(int length) 構造一個不帶字元,但具有指定初始容量的字串緩衝區。
StringBuffer(String str)構造一個字串緩衝區,並將其內容初始化為指定的字串內容。
StringBuffer
主要方法:
append(double d) //追加
append(float f)
append(int i)
delete(int start, int end) //刪除
insert(int offset, int i) //插入
substring(int start, int end) //擷取
indexOf(String str, int fromIndex) //檢索
toString() //轉為字串
例子:StringBuf.java
分析(切割)字串
Java.util包中的StringTokenizer類
建構函式: StringTokenizer(String s)//用預設分割符分割
StringTokenizer(String s,String delim,true f)
其它函式:
nextToken( ) //取下一個單詞
hasMoreTokens( ) //檢測是否還有單詞
countTokens( ) //分析出的串中的單詞數
例子:StringToken.java
常見工具類
包裝類
Math類
日期類
Date類
Calender類
GregorianCalendar
Random類
System和Runtime類
包裝類
原始資料型別包裝類
byte(位元組)Byte
char(字元)Character
int(整型)Integer
long(長整型)Long
float(浮點型)Float
double(雙精度)Double
boolean(布林)Boolean
short(短整型)Short
包裝類
public class NumberWrap {
/** 構造方法 */
protected NumberWrap() {
}
/** 這是 main 方法
* 它將原始值轉換為其相應的包裝型別
*/
public static void main(String[] args) {
String number =“21”;
Byte byNum = Byte.valueOf(number);
Short shNum = Short.valueOf(number);
Integer num = Integer.valueOf(number);
Long lgNum = Long.valueOf(number);
System.out.println("Output");
System.out.println(byNum);
System.out.println(shNum);
System.out.println(num);
System.out.println(lgNum);
}}
包裝類
Character包裝類的方法
方法說明
isDigit()確定字元是否為 0 至 9 之間的數字
isLetter()確定字元是否為字母
isLowerCase()確定字元是否為小寫形式
isUpperCase()確定字元是否為大寫形式
isSpace()確定字元是否為空格或換行符
isUnicodeIdentifierStart()確定是否允許將指定字元作為 Unicode 識別符號中的首字元
包裝類
public class TestCharacter {
public static void main(String[] args) {
int count;
char[] values = {'*', '7', 'p', ' ', 'P'};
for (count = 0; count < values.length; count++) {
if (Character.isDigit(values[count])) {
System.out.println(values[count] + “是一個數字");
}
if (Character.isLetter(values[count])) {
System.out.println(values[count] + “是一個字母");
}
if (Character.isUpperCase(values[count])) {
System.out.println(values[count] + “是大寫形式");
}
if(Character.isUnicodeIdentifierStart(values[count])) {
System.out.println(values[count] + “是 Unicode "
+ “識別符號的第一個有效字元");
}
}
}
}
Math 類
方法說明
int abs (int numvalue) 計算 int 型別值 numvalue 的絕對值,也接收 long、float 和 double 型別的引數
double ceil (double numvalue)返回大於等於 numvalue 的最小整數值
double floor (double numvalue) 返回小於等於 numvalue 的最大整數值
int max(int a, int b)返回 int 型值 a 和 b 中的較大值,也接收 long、float 和 double 型別的引數
int min(int a, int b)返回 a 和 b 中的較小值,也可接收 long、float 和 double 型別的引數
double random() 返回帶正號的 double 值,大於或等於 0.0,小於 1.0。
……
Math 類的用法
使用 Math 類的方法,如 ceil()、floor() 和 round(),random()
例子:MathDemo.java
Math 類的用法
使用 Math 類的方法,如 ceil()、floor() 和 round(),random()
例子:MathDemo.java
Math 類的用法 使用 Math 類的方法,如 ceil()、floor() 和 round(),random() 例子:MathDemo.java
sort(xxx[] a)方法
binarySearch (xxx[]?a, xxx?key)
equals(xxx[] a, xxx[] a2)
fill(xxx[] a, xxx val)
toString(xxx[]?a)
Date 類
Date 類表示日期和時間
提供操縱日期和時間各組成部分的方法
Date 類的最佳應用之一是獲取系統當前時間
Date 類構造方法
構造方法說明
Date()使用當天的日期建立 Date
Date(long dt)使用自 1970 年 1 月 1 日以後的指定毫秒數建立 Date
Calendar 類
根據給定的 Date 物件,Calendar 類可以以 YEAR 和 MONTH 等整型的形式檢索資訊
它是抽象的,因此不能像 Date 類一樣例項化
GregorianCalendar:是 Calendar 的子類,實現 Gregorian 形式的日曆
Random 類
此類生成隨機數
兩種構造方法
Random類的方法:
nextInt() nextFloat() nextDouble()
例子:TestRandom.java
System類和Runtime類
方法說明
System類
long currentTimeMillies獲取當前系統的時間
exit(int status)終止Java程式的執行,退出JVM
Runtime類
Runtime getRuntime()返回當前的Runtime物件
Process exec(String com)執行指定的外部命令
示例
public class Test{
public static void main(String[] s) throws Exception{
long start=System.currentTimeMillis();
int m=0;
int size=100000;
for(int i=0; i<size; i++){
m+=i;
System.out.println(""+i);
}
long end=System.currentTimeMillis();
long totalTime=end-start;
System.out.println("for 運行了毫秒數: "+totalTime+" m "+m);
Runtime run=Runtime.getRuntime();
run.exec("cmd /c start winword.exe");//用java開啟word
run.exec("cmd /c start mailto:
}
}
相關推薦
【安博培訓技術】Java2 陣列、字串、常用工具類20130918
教學目標 熟練使用一維陣列存取資料,瞭解多維陣列的使用 熟練掌握String與StringBuffer操作的幾個常見函式 熟練使用包裝類、Math類、日期類、Random類、System和Runtime類 什麼是陣列? 陣列是用來儲存一組相同資料型別資料的資料結構 陣列是一
【安博培訓筆記】Java2 陣列、字串、常用工具類_課下作業2_20130920
1. 假如有以下email資料“[email protected],[email protected],[email protected],..”現需要把email中的使用者部分和郵件地址部分分離,分離後以鍵值對應的方式放入HashMap p
【安博培訓技術】Oracle4 事務和資料庫物件20130910
Oracle4 事務和資料庫物件 回顧 SQL 支援的操作符包括算術、比較、邏輯、集合和連線操作符 SQL 函式可大致分為: 單行函式:日期、字元、數字、轉換、其他 聚合函式 分析函式 目標 事務 使用同義詞 使用序列 理解並使用檢視 理解並使用索引 事務管理 例如,銀行轉
【安博培訓技術】Oracle8 觸發器20130912
Oracle8 觸發器 回顧 子程式是命名的 PL/SQL 塊,儲存在資料庫中,可帶引數並可在需要時隨時呼叫 有兩種型別的PL/SQL子程式,即過程和函式 過程使用者執行特定的任務,函式用於執行任務並返回值 程式包是對相關型別、變數、常量、遊標、異常、過程和函式等物件的封裝
【安博培訓筆記】Oracle賓館管理系統-TI_綜合專案20130917
------------------------------------------------------------------ --實現主鍵自增 create table t28( id number primary key, name v
【安博培訓筆記】Java1 Java面向物件_PPT練習20130920
package com.ambow.java20130917; public class Student { private String name; private int age; private int banji; private String love;
20154309 【網絡對抗技術】Exp5:MSF基礎應用
系統訪問 inux 安裝程序 執行 反彈連接 敏感信息 back 很難 其他 20154309 【網絡對抗技術】Exp5:MSF基礎應用 一、原理與實踐說明 1.實踐內容 本實踐目標是掌握metasploit的基本應用方式,掌握重點常用的三種攻擊方式的思路。具體需要完成:
20154309 【網絡對抗技術】Exp7: 網絡欺詐防範
結合 scan 利用 exp rom sts TP con target 20154309 【網絡對抗技術】Exp7: 網絡欺詐防範 一、原理和實踐說明 1.實踐目標 理解常用網絡欺詐背後的原理,以提高防範意識,並提出具體防範方法。 2.實踐內容 (1)簡單應用SET工
20154309 【網絡對抗技術】Exp8: Web基礎
pda 發的 show lec 語言 攻擊 pri 組件 新建 20154309 【網絡對抗技術】Exp8: Web基礎 一、實驗要求 掌握網頁編程的基本知識 html語法 javascript php 前端,後臺,數據庫之間如何建立連接 掌握數據庫的使用 mysql的啟
【安卓本卓】Android系統原始碼篇之(二)Source Insight
Source Insight(以下簡稱SI) 一、SI簡介 SI是一款面向專案開發的程式編輯器和程式碼瀏覽器,它提供了一個檢視將分散在各個地方的程式碼匯合在一起形成一個虛擬的整體,供開發者方便地閱讀和編輯,如下圖所示。它已經持續維護了10多年了,旨在提
用 mpvue 寫個【微博-青銅版】微信小程式
第一次寫小程式,由於偏愛 Vue,所以選則了 mpvue 這個框架。那就寫個青銅版微博來練練手吧。 效果截圖: 圖1:微博首頁 圖2:發微博 圖3:我的 技術要點 1、小程式框架:mpvue 2、http 請求庫:fly.js 3、狀態管理:vuex 4、資料來源:微博開放平臺 ap
【安卓本卓】Android系統原始碼篇之(一)原始碼獲取、原始碼目錄結構及原始碼閱讀工具簡介
前言 古人常說,“熟讀唐詩三百首,不會作詩也會吟”,說明了大量閱讀詩歌名篇對學習作詩有非常大的幫助。做開發也一樣,Android原始碼是全世界最優秀的Android工程師編寫的程式碼,也是Android開發中絕對的權威所在。Android系統開源,且佔據了當今手機系統世界的絕大部分江山,各大手機廠商要做手機系
【Sam哥哥聊技術】網際網路技術愛好者
在唯品會3年裡經歷了核心業務系統從PHP到JAVA的大重構,有豐富的分散式高併發系統架構設計經驗。目前在SEE小電鋪負責核心業務系統從0到1的基於Spring Cloud的微服務大重構。
【.NET博文收藏】
1024超級勳章 授予原創文章總數達
【安卓學習筆記】Android Studio第3課——EditText控制元件
EditText和TextView很相似,主要不同的是EditText是使用者可以在上面編輯本文的,而TextView只能用app本身去改變和顯示。做了一個簡單的登入介面:xml程式碼如下<?xml version="1.0" encoding="utf-8"?>
【字串】字元陣列和字串區別詳解
C 語言中並不存在字串這個資料型別,而是使用字元陣列來儲存字串。那麼,字元陣列就一定是字串嗎? 對於這個問題,大多教科書中的回答是“是”。其實不然,字元陣列和字串是完全不相同的兩個概念,千萬不要混淆。分析如下所示的示例程式碼。 1 #include <stdio.h> 2 #incl
【堆疊和棧溢位】MSP430 陣列填充越界引起的棧溢位 導致程式跑飛
1、棧區(stack)— 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。 2、堆區(heap) — 一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由OS回收 。注意它與資料結構中的堆是兩回事,分配方式倒是類似於連結串列。 //main
安卓常用工具類-StringUtils【String字串工具類】
判斷字串是否為空,專案中用的太多了。必須封裝起來!另外判斷集合是否為空用的也很多,這裡也放到一起~ package com.example.burro.demo.appframework.util;
【安卓架構師】【高煥堂】【android從程式設計師到架構師】從零開始進階安卓架構師
從第一次寫出Hello World,到成為一個優秀的工程師的距離有多遠? android從程式設計師到架構師之路課程,遵循敏捷的迭代過程,從思想、方法、模式、範例和成功案例各種不同角度,帶你學習從
【谷歌面試題】求陣列中兩個元素的最小距離
一個數組,含有重複元素,給出兩個數num1和num2,求這兩個數字在陣列中出現的位置的最小距離 O(n)時間複雜度,O(1)空間複雜度 int minDistance(int A[], int size, int num1, int num2) { int num1_la