PHP字串長度找子字串與取代字串的常用函數

PHP在字串的操作上,有非常多的相關函數可以使用,我們在這裡只介紹經常會使用到的字串操作函數。像是如何取得字串的長度、在某一個字裏面尋找子字串首次出現的位置、以及字串的取代函數...等等。這些都是在編寫程式的時候,頻繁被程式設計師使用到的基礎函數。 取得字串長度 <?...

2012年7月11日 星期三

chartAt(int index)方法 - java字串類別

回java字串常用函式主頁

chartAt(int index)方法

回傳特定索引char值。特定索引範圍介於0到length() - 1。
在序列中的第一個char值是位於索引0的位置,下一個值於索引1的位置,以此類推。
假若特定索引位置的char值是一個代理值(Unicode字元)時,則返回Unicode對映回來的代表值。


範例程式

package jcode.test.string;

public class Sample001 {

  /**
   @param args
   */
  public static void main(String[] args) {
    String str = "abcdefg1263457";
    char c3 = str.charAt(3);
    System.out.println("索引3的值: "+c3);
  }

}


執行結果

 



endsWith(String suffix)方法 - java字串類別

回java字串常用函式主頁

endsWith(String suffix)方法

測試在目前字串中從尾部為起始是否有後綴。


範例程式

package jcode.test.string;

public class Sample003 {

  /**
   @param args
   */
  public static void main(String[] args) {
    String str = "abcdefg1263457";
    boolean flag = str.endsWith("7");
    if(flag){
      System.out.println("字串'7'找到了!");
    }else{
      System.out.println("找不到資料。");
    }

  }

}


執行結果








startsWith(String prefix)方法 - java字串類別

回java字串常用函式主頁

startsWith(String prefix)方法

測試在目前字串中是否有字首。


範例程式

package jcode.test.string;

public class Sample002 {

  /**
   @param args
   */
  public static void main(String[] args) {
    String str = "abcdefg1263457";
    boolean flag = str.startsWith("a");
    if(flag){
      System.out.println("字串'a'找到了!");
    }else{
      System.out.println("找不到資料。");
    }

  }

}


執行結果








Java String常用函式使用


「String」類別是由字元組合而成,而在Java程式語言中的所有字串都必需實作這個類別,
字串值為常數值,它們的值只要已經創建就不會被改變,以下我們列舉了一些常用的字串方法供大家參考:

1. 字串匹配、取代與截取子字串處理函式

char charAt(int index)
  給定特定索引數值,如整數值 3,回傳該位置對映回來的字元(char)值。

boolean startsWith(String prefix)
  測試於目前字串中從字串頭部開始是否找到指定字串。

boolean endsWith(String suffix)
  測試於目前字串中從字串尾部開始是否找到指定字串。

int indexOf(String str)
  回傳指定子字串在目前字串中第一次出現的索引位置值。  

int indexOf(String str, int fromIndex)
  在給定起始索引位置條件下,回傳指定子字串在目前字串中第一次出現的索引位置值。    

int lastIndexOf(String str)
  在目前字串中,從尾部開始找出給定字串第一次出現的索引位置。

int lastIndexOf(String str, int fromIndex)
  在目前字串中,從尾部特定的索引位置開始找出給定字串第一次出現的索引位置。

String substring(int beginIndex)
  回傳在目前字串中擮取的子字串,範圍從給定開始索引位置到字串結尾。

String substring(int beginIndex, int endIndex)
  回傳在目前字串中擮取的子字串,範圍從指定開始索引位置到指定結尾索引位置。

String replace(char oldChar, char newChar)
  將在目前字串中所有oldChar的字元取代為newChar字元。


2. 編碼轉換函式

byte[] getBytes()
  採用目前OS安裝的編碼方式,將目前的字串編碼為循序的bytes陣列。

byte[] getBytes(String charsetName)
  採用指定編碼方式,將目前的字串編碼為循序的bytes陣列。


3. 字串比較、字串長度相關函式

boolean equals(Object anObject)
  比較目前的字串和指定字串是否相等,切記字串相等比較勿使用「= =」運算子。

boolean equalsIgnoreCase(String anotherString)
  比較目前的字串和指定字串是否相等,但勿略字母的大小寫。

int length()
  回傳目前字串的長度。

boolean isEmpty()
  用來判斷目前的字串是否為空值,與目前字串的length()等於0為等價的判斷。

String trim()
  去除目前字串的前後空白字元。


4. 字串大小寫轉換函式

String toLowerCase()
  將目前的字串轉換為小寫字元。

String toUpperCase()
  將目前的字串轉換為大寫字元。


5. 字串分割函式

String[] split(String regex)
  以給定的正則表示式(regular expression)來分割目前字串。

2012年7月4日 星期三

使用Eclipse Ant plugin操作流程

目前Ant工具已經內崁為Eclipse IDE的一部份,因此我們不需要額外再安裝Ant plugin套件,
其使用方法極為簡單,完整的操作流程可參考下列說明:

1. 開啟您的Eclipse IDE,建立一個TestProject的專案之後,於src/jcode/test套件目錄底下
   新增HelloTest類別且於程式進入點的main()函式,加入以下的一段程式代碼:

public static void main(String[] args) {
  System.out.println("Hello, everybody!");    
}

2. 把滑鼠指標移至TestProject的圖示,然後點擊滑鼠右鍵,出現上下文選單(context menu)點取Export項目,



   畫面帶出如下圖的"Export"對話方塊,選擇"Ant Buildfiles"圖示,來產出TestProject的build.xml文件檔:

 

3. 打開build.xml文檔,並且對該文件進行局部性的修改,其修改過的程式代碼以紅色粗體字表示。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="build" name="TestProject">
    <property environment="env"/>
    <property name="ECLIPSE_HOME" value="../../../eclipse-sdk-helios"/>
    <property name="debuglevel" value="source,lines,vars"/>
    <property name="target" value="1.6"/>
    <property name="source" value="1.6"/>
      <property name="dist" location="dist"/>
   
    <path id="TestProject.classpath">
        <pathelement location="bin"/>
        <pathelement location="../../../jar-lib/ojdbc14.jar"/>
    </path>
    <target name="init">
        <mkdir dir="bin"/>   
        <copy includeemptydirs="false" todir="bin">
            <fileset dir="src">
                <exclude name="**/*.launch"/>
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>
    <target name="clean">
        <delete dir="bin"/>
    </target>
    <target depends="clean" name="cleanall"/>
    <!--target depends="build-subprojects,build-project" name="build"/-->
   
      <target depends="dist" name="build"/>
   
    <target name="build-subprojects"/>
    <target depends="init" name="build-project">
        <echo message="${ant.project.name}: ${ant.file}"/>
        <javac debug="true" debuglevel="${debuglevel}" destdir="bin" source="${source}" target="${target}">
            <src path="src"/>
            <classpath refid="TestProject.classpath"/>
        </javac>
    </target>
   
      <target name="dist" depends="build-subprojects,build-project" description="generate the distribution" >
        <!-- 創建放置jar檔目錄 -->
        <mkdir dir="${dist}/lib"/>
        
        <!-- build目錄內的所有檔案結構打包成一個TestProject.jar  -->
        <jar jarfile="${dist}/lib/${ant.project.name}.jar" basedir="bin"/>
      </target>
   
    <target description="Build all projects which reference this project. Useful to propagate changes." name="build-refprojects"/>
    <target description="copy Eclipse compiler jars to ant lib directory" name="init-eclipse-compiler">
        <copy todir="${ant.library.dir}">
            <fileset dir="${ECLIPSE_HOME}/plugins" includes="org.eclipse.jdt.core_*.jar"/>
        </copy>
        <unzip dest="${ant.library.dir}">
            <patternset includes="jdtCompilerAdapter.jar"/>
            <fileset dir="${ECLIPSE_HOME}/plugins" includes="org.eclipse.jdt.core_*.jar"/>
        </unzip>
    </target>
    <target description="compile project with Eclipse compiler" name="build-eclipse-compiler">
        <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
        <antcall target="build"/>
    </target>
</project>


4. 將滑鼠指標移動到build.xml圖示,單點滑鼠右鍵後選取"Run As -> 1 Ant Build"項目執行,會於"Console"輸出Ant的腳本代碼:




Buildfile: D:\works\TestProject\build.xml
build-subprojects:
init:
build-project:
     [echo] TestProject: D:\works\TestProject\build.xml
dist:
    [mkdir] Created dir: D:\works\TestProject\dist\lib
      [jar] Building jar: D:\works\TestProject\dist\lib\TestProject.jar
build:
BUILD SUCCESSFUL
Total time: 526 milliseconds

Ant的手動安裝設定


Ant本身並非是一個Windows的程式,因此安裝過程需要一些手動安裝步驟。

1. 首先,到apache ant的官方網站http://ant.apache.org/bindownload.cgi下載ant的程式套件壓縮檔



2. 再來,將Ant程式套件的zip檔解壓縮到Windows的指定目錄e.g., C:\myant\
   zip檔內會包含依據版本資訊命名"apache-ant"的子目錄結構。
3. 然後,你需要設定一些環境變數以讓你的command console知道如何去找到Ant的執行檔
   以及讓Ant知道在那裡可以找到java執行檔

在Windows XP的對話框中,你可以存取環境變數藉由"開始選單"與右擊"我的電腦"圖示。
稍後會帶出"系統屬性"對話方塊。請選取"進階"按鈕:



並且點擊"環境變數"按鈕。

4. 最後,你需要使用"新增"按鈕加入兩個新的變數分別如下:

  • ANT_HOME是ant套件解壓縮後所放置的根目錄所在位置
  • JAVA_HOME表示Java SDK安裝所在根目錄




而且你還需要編輯變數:

  • 於PATH變數增加%ANT_HOME%/bin的路徑




5. 完成以上步驟之後,打開你的command console輸入ant按Enter鍵,若輸出以下的訊息字串時,代表Ant的安裝設定成功。






2012年7月1日 星期日

Apache Ant的快速入門

1. Ant定義

Ant(Another Neat Tool)是一組Java類別庫與命令列工具,它的建立檔案(build file)是由XML組成,而每一個建立檔案會包含一個計畫(Project)與一個以上的目標(target),在每一個目標內會包含一組要執行的任務(task)。一個Ant建立檔案會由計畫、目標、任務、屬性(properties)、路徑(paths)等相關元素所組成。

2. Ant的組成元素

計畫(Project)

在Ant腳本中是為上層的元素,它有三個選擇性的屬性可以設定,分別name、default、basedir
  • name是專案的名稱
  • default代表當在專案中不存在任何target時,專案就會直接使用default設置的target
  • basedir即buildfile文件所在之根目錄

目標(Target)

每一個專案定義零到多個目標,一個目標也就是一組你想要執行的任務,並且當您要啟動Ant時,可以選擇想要執行的目標只要沒有給定任何目標,專案就會使用預定目標  我們也可以運用if/unless條件式來決定該執行那一個目標,一個目標可以相依於其他目標,也就是需要等被依賴的目標執行完成,該目標才能接續執行。

任務(Tasks)

一個任務是由一個可執行的代碼所組成,它包含了多重屬性。

屬性(Properties)

一個屬性是由一個名稱和一個值組成,名稱以大小寫作為區別,舉例來說,有一個builddir的屬性擁有build值,  而且使用在屬性標籤表示式會是${builddir}/classes,當執行Ant buildfile時會輸出build/classes的結果,一般而言屬性不是變數,通常以字串常數的型態呈現。
  • 例子,設置test.dist屬性為"dist"值:
          <property name="test.dist" value="dist"/>

路徑(Paths)

路經結構是由classpath、pathelement、fileset、dirset與filelist等元素分別組合而成。
  • classpath是類別參考路徑
  • pathelement用來指定目錄或jar文檔
  • fileset是一群檔案的組合
  • dirset是一群目錄的組合
  • filelist定義為檔案的集合
  <classpath>
    <pathelement path="${classpath}"/>
    <fileset dir="lib">
      <include name="**/*.jar"/>
    </fileset>
    <pathelement location="classes"/>
    <dirset dir="${build.dir}">
      <include name="apps/**/classes"/>
      <exclude name="apps/**/*Test*"/>
    </dirset>
    <filelist refid="other_jars"/>
  </classpath>

3.第一支簡單的Ant buildfile文件

首先, 我們必須依據所屬的應用程式專案建立自己的buildfile文件,可以參考以下的範例說明:
  • 建立簡單buildfile文件範例
<project name="TestProject" default="dist" basedir=".">   
  <!-- build文件設定全域性屬性 -->
  <property name="src" location="src"/>
  <property name="build" location="build"/>
  <property name="dist"  location="dist"/>

  <target name="init">   
    <!-- 建立build的目錄結構 -->
    <mkdir dir="${build}"/>
  </target>

  <target name="compile" depends="init" description="compile the source " >
    <!-- src目錄編繹java代碼,且將編譯好的class代碼移動到build目錄  -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>

  <target name="dist" depends="compile" description="generate the distribution" >
    <!-- 創建放置jar檔目錄 -->
    <mkdir dir="${dist}/lib"/>

    <!-- build目錄內的所有檔案結構打包成一個TestProject.jar  -->
    <jar jarfile="${dist}/lib/${ant.project.name}.jar" basedir="${build}"/>
  </target>

  <target name="clean"  description="clean up" >
    <!-- 刪除builddist樹狀結構目錄  -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>

在撰寫完成buildfile文件之後,需要安裝Ant工具或者使用Eclipse IDE內建的Ant plugin來執行我們剛才所建立的buildfile文件。
  • Ant腳本輸出:
Buildfile: D:\Works\TestProject\TestProject.xml
init:
    [mkdir] Created dir: D:\Works\TestProject\build
compile:
    [javac] Compiling 1 source file to  D:\Works\TestProject\build
dist:
    [mkdir] Created dir: D:\Works\TestProject\dist\lib
      [jar] Building jar: D:\Works\TestProject\dist\lib\TestProject.jar