package tw.xxx.xxx.copy.oop;

 

public class TestWrapperClassesEx1 {

 

   public static void main(String[] args) {

      String number = "1000";//設定一個字串形態的數字

      System.out.println("字串形態的數字無法直接當數字使用,所以是12341而不是1235"+(number+1));

      //字串使用+號時時將兩個字串連在一起,所以number+1會自動把1也變成字串,產生12341

      System.out.println("------");

     

      int num1 = Integer.parseInt(number);//把字串轉成整數的簡單語法

      System.out.println("num1number以整數形態表示的變數,所以(num1+1)可以計算:"+(num1+2));

      System.out.println("------");

     

      Integer num2 = new Integer(number);//利用Integer內建的建構子Integer(String str)來產生一個Integer物件num2

      //注意num2是一個Integer的物件,不是一個基本型態

      int num2_1 = num2.intValue();//intValue()Returns the value of this Integer as an int.

      //上面兩行也可以直接寫成一行:int num_2 = new Integer(number).intValue();

      System.out.println("num2_1是從物件num2傳出來的int變數,(num2_1+3)可以做計算:"+(num2_1+3));

     

      //但其實現在java很多東西都有自動封裝、拆除,所以就算直接用num2做計算也可以

      System.out.println("num2也可以做計算:"+(num2+10));

     

      System.out.println("------");

 

      int num3 =Integer.valueOf(number);

      System.out.println("valueOf會回傳int型別的資料,所以可以直接等於int num3,進行計算:"+(num3+4));

     

      //上面這一行也可以這樣寫:

//    Integer num4 = Integer.valueOf(number);//num4接收的是Integer object

//    int num4_1 = num4.intValue();

//    上面這兩行一樣可以化為一行:

      //int num4_1 = Integer.valueOf(number).intValue();

   }

}


字串形態的數字無法直接當數字使用,所以是12341而不是1235:10001
------
num1是number以整數形態表示的變數,所以(num1+1)可以計算:1002
------
num2_1是從物件num2傳出來的int變數,(num2_1+3)可以做計算:1003
num2也可以做計算:1010
------
valueOf會回傳int型別的資料,所以可以直接等於int num3,進行計算:1004

 



package tw.xxx.xxx.copy.oop;

 

public class TestStringEx1 {

 

   public static void main(String[] args) {

      String str1 = "hi";// 放在字串池

      String str2 = new String("有新記憶體");// 會有新實體

      String str3 = str1 + str2;

 

      System.out.println("str3=" + str3);// 都是字串,可以連結

 

      System.out.println("str1+1+2=" + str1 + 1 + 2);// 1會先碰到字串str1被同化變成字串,再碰到22也變成字串:hi12

      System.out.println("str1+(1+2)=" + str1 + (1 + 2));// 先做括號內計算=3,之後被同化成字串:hi3

      System.out.println("正統數字轉字串:" + str1

                      + new Integer(1).toString()

                      + new Integer(2).toString());// 結果也是hi12

 

      int number = 3 * 5 + 1;// =16

      showMsg("" + number);// showMsg(方法寫在下面)要求輸入的必須是字串,所以要先把number轉成字串形態,用"

                          // "相連最簡單(碰到字串的整數會被同化成字串)

      showMsg(new Integer(number).toString());// 跟上面一樣的意思

   }

 

   public static void showMsg(String number) {

      System.out.println("number:" + number);

 

   }

}


str3=hi有新記憶體
str1+1+2=hi12
str1+(1+2)=hi3
正統數字轉字串:hi12



字串的一些方法:字串長度、某個字串是否以特定字串開始、第某個位置是甚麼字、某些內容開始於第幾個位置、顯示某個位置到另一個位置是甚麼內容、把字串用關鍵字分開放入陣列

package tw.xxx.myfirstproject.oop;

 

public class TestStringMethodEx1 {

 

   public static void main(String[] args) {

      String data ="abcdefg890";

      System.out.println("data.length():"+data.length());

      //字串長度

   System.out.println("data.startsWith(abcdrfg):"+data.startsWith("abcdefg"));

      ///否以...為開始字串

      System.out.println("data.charAt(5):"+data.charAt(5));

      //從零開始數,第五個字(6)

      System.out.println("data.indexOf(efg):"+data.indexOf("efg"));

      //一樣從0開始數,只給第一個字的位置

      System.out.println("data.substring(3, 5):"+data.substring(3, 5));

      //包前不包後,所以(3,5)是只有3,4(沒有5),一樣從0開始數

      String names = "mary:john:judy:david:michelle";

      //若是mary*john則下方改為names.split("\\*")

      String[] nameValuenames.split(":");//names這個字串裡的內容以:作為分割,並一一傳入陣列中

      for(String nickename:nameValue){

          System.out.println(nickename);

      }

   }

}


data.length():10
data.startsWith(abcdrfg):true
data.charAt(5):f
data.indexOf(efg):4
data.substring(3, 5):de
mary
john
judy
david
michelle



package tw.tinachang.myfirstproject.oop;

 

public class TestToStringEx1 {

   @Override

   public String toString(){//toStringObject底下的方法,這邊是在改寫(override)

      return "Hi!";

   }

 

   public static void main(String[] args) {

      TestToStringEx1 test1 = new TestToStringEx1();

      System.out.println("test1="+test1);

      System.out.println("test1.toString="+test1.toString());

      //.toString()object的物件,在用println時會預設(偷偷幫你寫了)把不是String的物件後面加上.toString

      //所以test1test1.toString()印出來的結果一樣

      //可以試試看把4-7行消掉的結果,會是一個地址串,那是java預設的toString會回傳的資訊

   }

}


test1=Hi!
test1.toString=Hi!

 

如果把4-7消掉:

test1=tw.tinachang.myfirstproject.oop.TestToStringEx1@139a55
test1.toString=tw.tinachang.myfirstproject.oop.TestToStringEx1@139a55

arrow
arrow
    全站熱搜

    乙方 發表在 痞客邦 留言(0) 人氣()