iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
0

在撰寫程式的過程中,我們常常會需要處理來自不同來源的資料,因此,透過一些特殊的資料集合來處理便會十分方便。
例如,身分證字號由英文字元及數字構成,我們就可將它存放於一個"字串"內。
除此之外,透過陣列便可以有序列性的存取資料,不管是在管理或是存取資料上,都會方便許多。
現在我們便來看Java中陣列與字串的處理方法。

陣列
陣列的宣告如下,基本上索引值必由0開始,這點幾乎所有的程式語言都是這樣。
另外,宣告陣列時必須同時指定其大小。

int[] a = new int[10]

or

int[] a = {1,2,3,4,5,6,7,8,9,10}

上面是一維陣列的宣告的方法,如果是二維的話:

int[][] b = {[1,2,3],[4,5,6]}
int[][] b = new int[3][3]

把資料放進去陣列後,我們要怎麼把資料拿出來呢? 這時候要透過迴圈---

for(int i=0; i<a.length; i++){
	System.out.println(a[i]);
}

在JDK5之後,提供了另一種強式for迴圈

for(int i:a){
 	 System.out.println(i);
}

for中的int代表的是a陣列中元素的型態,如果a是字元陣列的話,就要改成char。
以上就是陣列的內容,讓我們來看一下字串的用法。

Java中在處理字串時,通常會以String類別來包裹字串,如:

String s = "123456";

而我們可以可以用String類別charAt()方法來獲得個別字元。另外,字串長度的方法為length(),與陣列的length不同。

for(int i=0; i<s.length(); i++){
    System.out.println(s.charAt(i));
}

這樣就可以獲得字串中的每個字元囉~

另外,我們要怎麼比較字串的內容是一樣的呢?
先來看以下例子。

String s1 = new String("Grant");
String s2 = "Grant";

System.out.println(s1==s2); //false
System.out.println(s2.equals(s2)); //true

明明內容相同,但是卻是false,造成這個結果的原因是Java中如果直接給與字串內容,該字串會被儲存於字串池中(s2)。
而s1的宣告是以new String的方式,所以會給s1分配一個全新的記憶體區塊,一個是存在字串池中,另一個是存在別的記憶體區塊中,所以如果直接==當然就會是false了。
因此,若想單純比較字串實際字元內容是否相同,不要使用==,要使用equals()。

以上就是今天的內容,明天見囉。


Hi, I am Grant.

個人部落格 - https://grantliblog.wordpress.com/
個人網站 - https://grantli-website.netlify.app/#/mainpage
我的寫作專題 - https://vocus.cc/user/5af2e9b5fd89780001822db4#

.


上一篇
Day6 - 物件的使用-類別
下一篇
Day8 - 把重要資訊隱藏起來吧 - 物件的封裝
系列文
30天手把手帶你跟JAVA變成好朋友 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言