. .

BAGIAN KE LIMA : JAVA METODE STRING Substring()  PADA NETBEANS IDE

Posted by CHRISTIANTO D,WIBOWO | D3MI-2016 STMIK BUMI GORA On Jumat, Desember 02, 2016 No comments

Terimakasih pada sumber pembelajaran :
  1. Substring - http://www.homeandlearn.co.uk/java/substring.html
  2. Java - String substring() Method - https://www.tutorialspoint.com/java/java_string_substring.htm
  3. String substring(beginIndex, endIndex)https://www.tutorialspoint.com/java/java_string_substring_beginendindex.htm
  4. Java – String substring() Method example http://beginnersbook.com/2013/12/java-string-substring-method-example/
  5. Using substring( ) in Javahttp://www.java-samples.com/showtutorial.php?tutorialid=226
  6. Substring Java Examplehttps://examples.javacodegeeks.com/java-basics/string-java-basics/substring-java-example/
Sebelum kita meneruskan mempelajari pembelajaran ini, ada baiknya kita baca artikel-artikel sebelumnya yang terhubung dengan langkah-langkah pembelajaran ini (Link) BAHASA PEMROGRAMAN JAVA PADA NETBEANS IDE.

Salah satu metode yang benar-benar berguna yang tersedia untuk kita disebut substring() Method. Metode ini memungkinkan kita untuk mengambil satu potongan teks dari yang lain. Dalam program alamat email kita sebelumnya (LIHAT BAGIAN KELIMA : JAVA METODE indexOf() PADA NETBEANS IDE), misalnya, kita bisa ambil lima karakter terakhir dari alamat email.
Untuk mendapatkan beberapa latihan dengan substring, kita akan menulis permainan kta sebut saja namanya small Name Swapper game. Untuk permainan ini, kita ingin mengubah dua huruf pertama dari nama keluarga dan Swap/Tukar mereka dengan dua huruf pertama dari nama pribadi, dan sebaliknya. Jadi untuk itu kita memiliki nama ini:
"Bill Gates"
kita akan Swap/Tukar "Ga" dari "Gates" dengan "Bi" dari "Bill" untuk membuat "Bites". "Bi" dari "Bill" kemudian akan bertukar dengan "Ga" dari "Gates" untuk membuat "Gall". Nama baru akan dicetak menjadi: "Gall Bites"
Kita akan menggunakan substring() Method untuk sebagian besar program ini. substring() Method bekerja seperti ini:
String FullName = "Bill Gates";
String FirstNameChars = "";
 
FirstNameChars = FullName.substring( 0, 2 );
Kita mengatur string untuk mencari, dalam hal ini string "Bill Gates" String FullName = "Bill Gates";. String akan mencoba untuk mencari berjalan setelah tanda sama dengan. Setelah sebuah titik, ketik nama metode, substring() ➽ FirstNameChars = FullName.substring( 0, 2 );. Ada dua cara untuk menggunakan substring, dan perbedaannya adalah di nomor antara kurung bulat. Kami memiliki dua nomor dalam kode di atas, 0 dan 2. Ini berarti mulai meraih karakter pada posisi 0 dalam string, dan berhenti meraih ketika kita memiliki dua dari mereka. Dua karakter kemudian kembali dan ditempatkan di variabel FirstNameChars. Jika kita lebih ke kanan ke akhir string, kita dapat melakukan ini:
String test = FullName.substring( 2 );
Kali ini, kita hanya memiliki 1 angka antara kurung bulat dari substring(2). Sekarang, Java akan mulai karakter dua di FirstName string, dan kemudian ambil karakter dari posisi 2 kanan ke akhir string.
Mari kita coba beberapa kode untuk pembuktiannya :
package swaper;

/**
 * @author https://christcay.blogspot.co.id/ - GEMBLONG
 */
public class Swaper {
 public static void main(String[] args) {
        // TODO code application logic here
        String FullName ="Bill Gates";
String FirstNameChars ="";

FirstNameChars = FullName.substring(0,2);
System.out.println(FirstNameChars);
    }
 
}
Maka  hasilnya :
Jadi metode substring(2) telah memungkinkan kita untuk mengambil dua karakter pertama dari nama "Bill".
Untuk mendapatkan karakter pertama, kita memiliki 0 dan 2 antara kurung bulat dari substring. Kita mungkin berpikir bahwa untuk mendapatkan "Ga" dari "Gates" yang baru saja, kita bisa melakukan ini:
= FullName.substring(5, 2);  
Kita masih dalam dua karakter,  "(5," akan memberitahu Java mulai dari "G" dari "Gates".
Posisi pertama dalam string adalah posisi 0 bukan pada posisi 1.
Jadi, mulai dari posisi 5 dalam string dan diambil 2 karakter. Namun, menjalankan kode seperti ini akan membuat error= FullName.substring(5, 2); . Itu karena angka kedua antara kurung bulat dari substring "2)" tidak memiliki arti berapa banyak karakter yang ingin di ambil. Ini berarti posisi dalam string yang ingin kita jadikan posisi terakhir. Dengan menentukan "2)" kita mengatakan pada Java bahwa proses berakhir pada karakter di posisi "2)" dari string. Karenanya kita tidak bisa menuju dari posisi 6 ke belakang ke posisi 2, dan proses itu akan mendapatkan error sebagai gantinya.
Jika kita mulai menghitung pada 0 dalam string "Bill", kita mungkin berpikir bahwa posisi 2 adalah huruf "l". Dan kita benar. Tapi substring() dimulai sebelum karakter di posisi itu, tidak setelah itu.
Untuk mendapatkan "Ga" dari "Gates", oleh karena itu, kita harus melakukannya seperti ini:
FullName.substring( 5, FullName.length( ) - 3 );
Angka kedua sekarang panjang string minus 3 karakter "- 3 )". Panjang string FullName.length( ) adalah berapa banyak karakter yang dimilikinya. "Bill Gates" memiliki 10 karakter, termasuk spasi. Dengan mengambil 3 dari 10, kita memiliki 7. Jadi kita mengatakan substring untuk mulai karakter 5 dan berakhir pada karakter 7 :  ➽
 "Bi¹l²l³ G⁵ ates".
Maka penulisan kode diatas FullName.substring( 5, FullName.length( ) - 3 ); dapat berjalan baik untuk nama "Bill Gates". Namun program tidak akan bekerja jika namanya adalah, "Billy Gates". Kode di atas akan mengambil karakter spasi ditambah huruf "G", yang bukan kita inginkan. Bagaimana jika kita menginginkan program untuk bekerja pada dua nama yang dimasukkan ?

Satu hal yang dapat kita lakukan adalah perhatikan posisi SPASI di dua nama tersebut "Bill Gates" dan "Billy Gates". 2 karakter yang ingin kita ambil dari nama kedua selalu datang tepat setelah karakter SPASI.  Kita ingin beberapa kode yang meraih ke 2 nama tersebut dengan mengGRAB 2 karakter pertama setelah SPASI.
Kita dapat menggunakan indexOf() untuk mencatat posisi SPASI :
int spacePos = FullName.indexOf(" ");
Untuk menentukan karakter spasi kita dapat mengetik spasi antara dua tanda kutip ganda (atau tanda kutip tunggal) - (""), kemudian memproses antara kurung bulat dari indexOf(). Nilai yang dikembalikan akan integer - int spacePos =,  dan itu adalah posisi kejadian pertama dari karakter spasi di nama lengkap pada string.
Mari kita uji, dengan menambahkan beberapa baris kode yang sudah kita buat sebelumnya :
package swaper;

/**
 * @author https://christcay.blogspot.co.id/ - GEMBLONG
 */
public class Swaper {
 public static void main(String[] args) {
        // TODO code application logic here
        String FullName ="Bill Gates";
String FirstNameChars ="";

FirstNameChars = FullName.substring(0,2);
System.out.println(FirstNameChars);
     
        int spacePos = FullName.indexOf(" ");
        System.out.println("space is at pos" +spacePos);
    }
 
}
maka hasil ooutputnya :

Jadi spasi berada pada posisi 4 dalam string. Kita dapat menggunakan fakta ini untuk meraih dua karakter pertama dari "Gates", atau memang pada kedua nama. kita memberitahu Java untuk menuju dari karakter pertama setelah spasi, dan berakhir pada dua karakter berikutnya :
FullName.substring( spacePos + 1, (spacePos + 1) + 2)
Jadi dua angka antara kurung bulat dari substring adalah:
spacePos + 1, (spacePos + 1) + 2
Kami ingin mulai dari karakter pertama setelah spasi (space + 1), dan berakhir pada dua karakter setelah posisi ini, yaitu (spacePos + 1) + 2. Tambahkan baris berikut ke kode kita (Yang diperhatikan metode substring baru kita menuju pada ke dua baris, tetapi Anda dapat menjaganya cukup satu saja, jika kita menginginkannya.) :
package swaper;

/**
 * @author https://christcay.blogspot.co.id/ - GEMBLONG
 */
public class Swaper {
 public static void main(String[] args) {
        // TODO code application logic here
        String FullName ="Bill Gates";
String FirstNameChars ="";

FirstNameChars = FullName.substring(0,2);
System.out.println(FirstNameChars);
     
        int spacePos = FullName.indexOf(" ");
        System.out.println("space is at pos " +spacePos);
     
        String SurNameChars="";
        SurNameChars=FullName.substring(spacePos +1, (spacePos +1) +2);
        System.out.println( SurNameChars);
    }
 
}
maka hasil ooutputnya :


Jadi kita sekarang memiliki "Bi" dari Bill dan "Ga" dari Gates. Sekarang yang perlu kita lakukan adalah mendapatkan sisa karakter dari dua nama, dan kemudian menukarnya. Kita dapat menggunakan substring untuk mendapatkan karakter yang tersisa dari nama pertama:
String OtherFirstChars = "";
OtherFirstChars = FullName.substring( 2, spacePos );
System.out.println( OtherFirstChars );
Dan sisanya karakter dari nama kedua:
String OtherSurNameChars = "";
OtherSurNameChars = FullName.substring((spacePos + 1) + 2, FullName.length() );
System.out.println( OtherSurNameChars );
Bukan angka di antara kurung bulat dari substring ntuk mendapatkan karakter nama pertama lainnya, tetapi angka yang ini:
2, spacePos
Ini memberitahu Java untuk memulai pada posisi 2, dan menuju ke posisi spasi untuk mendapatkan sisa nama kedua, :
(spacePos + 1) + 2, FullName.length( )
Kode ini (spacePos + 1) + 2 adalah posisi awal dari karakter ketiga dari nama kedua. Kita ingin berakhir pada panjang string, yang akan membawa kita ke sisa karakter.
Menambahkan berikut ke kode : 
package swaper;

/**
 * @author https://christcay.blogspot.co.id/ - GEMBLONG
 */
public class Swaper {
 public static void main(String[] args) {
        // TODO code application logic here
        String FullName ="Bill Gates";
String FirstNameChars ="";

FirstNameChars = FullName.substring(0,2);
System.out.println(FirstNameChars);
     
        int spacePos = FullName.indexOf(" ");
        System.out.println("space is at pos " +spacePos);
     
        String SurNameChars="";
        SurNameChars=FullName.substring(spacePos +1, (spacePos +1) +2);
        System.out.println( SurNameChars);
     
        String OtherFirstChars = "";
        OtherFirstChars = FullName.substring( 2, spacePos );
        System.out.println( "other first: " +OtherFirstChars );
        
        String OtherSurNameChars = "";
        OtherSurNameChars = FullName.substring((spacePos + 1) + 2, FullName.length() );

        System.out.println( "other second: " +OtherSurNameChars );
     
    }
 
}
Sehingga hasilnya akan seperti ini :

Kita sekarang memiliki semua bagian dari nama. Untuk menggabungkannya, kita dapat menggunakan Rangkaian - concatenation:
package swaper;

/**
 * @author https://christcay.blogspot.co.id/ - GEMBLONG
 */
public class Swaper {
 public static void main(String[] args) {
        // TODO code application logic here
        String FullName ="Bill Gates";
String FirstNameChars ="";

FirstNameChars = FullName.substring(0,2);
System.out.println(FirstNameChars);
     
        int spacePos = FullName.indexOf(" ");
        System.out.println("space is at pos " +spacePos);
     
        String SurNameChars="";
        SurNameChars=FullName.substring(spacePos +1, (spacePos +1) +2);
        System.out.println( SurNameChars);
     
        String OtherFirstChars = "";
        OtherFirstChars = FullName.substring( 2, spacePos );
        System.out.println( "other first: " +OtherFirstChars );
        
        String OtherSurNameChars = "";
        OtherSurNameChars = FullName.substring((spacePos + 1) + 2, FullName.length() );

        System.out.println( "other second: " +OtherSurNameChars );

        String NewName="";
        NewName=SurNameChars + OtherFirstChars +"" + FirstNameChars +OtherSurNameChars;
        System.out.println("NewName = " +NewName);
    }

}
Sehingga hasilnya akan seperti ini :

Kita bisa menghilangkan garis cetak, dengan meminta pengguna untuk memasukkan nama depan dan nama kedua. Berikut program baru (penambahan hanya pada input keyboard, yang telah kita gunakan sebelumnya):
package nameswapper;
// @author https://christcay.blogspot.co.id/ - GEMBLONG
import java.util.Scanner;
public class NameSwapper {
public static void main(String[] args) {
        // TODO code application logic here
Scanner user_input=new Scanner(System.in);

System.out.println("Enter a First Name and Surname: ");
String FullName = user_input.nextLine();

String FirstNameChars ="";
FirstNameChars= FullName.substring(0, 2);

int spacePos = FullName.indexOf(" ");
String SurNameChars = "";
SurNameChars=FullName.substring(spacePos +1, (spacePos +1) +2);

String OtherFirstChars="";
OtherFirstChars=FullName.substring(2, spacePos);

String OtherSurNameChars="";
OtherSurNameChars=FullName.substring((spacePos +1) +2, FullName.length());

String NewName="";
NewName=SurNameChars + OtherFirstChars +" " +FirstNameChars +OtherSurNameChars;

System.out.println("You are : " +NewName);
     
    }
 
}
hasilnya akan seperti ini :

Kita  tentu saja harus,, menambahkan beberapa pengecekan error. Tapi kita akan mengasumsikan pengguna dapat memasukkan nama pertama dan nama keluarga diantara dua spasi. Jika tidak, program akan crash!

Contoh-contoh :
import java.io.*;
public class Test {

   public static void main(String args[]) {
      String Str = new String("Welcome to STMIK BUMI GORA");

      System.out.print("Return Value :" );
      System.out.println(Str.substring(10) );

   }
}

import java.io.*;
public class Test {

   public static void main(String args[]) {
      String Str = new String("Welcome to STMIK BUMI GORA MATARAM");

      System.out.print("Return Value :" );
      System.out.println(Str.substring(10, 15) );
   }
}

import java.io.*;
public class Test {

   public static void main(String args[]) {
      String str= new String("quick brown fox jumps over the lazy dog");
       System.out.println("Substring starting from index 15:");
       System.out.println(str.substring(15));
       System.out.println("Substring starting from index 15 and ending at 20:");
       System.out.println(str.substring(15, 20));
   }
}

Compiling the source code....
$javac Test.java 2>&1

Executing the program....
$java -Xmx128M -Xms16M Test
Substring starting from index 15:
 jumps over the lazy dog
Substring starting from index 15 and ending at 20:
 jump

import java.io.*;
public class Test {

   public static void main(String args[]) {
      String org = "This is a test. This is, too.";
String search = "is";
String sub = "was";
String result = "";
int i;
do { // replace all matching substrings
System.out.println(org);
i = org.indexOf(search);
if(i != -1) {
result = org.substring(0, i);
result = result + sub;
result = result + org.substring(i + search.length());
org = result;
}
} while(i != -1);
   }
}

Compiling the source code....
$javac Test.java 2>&1

Executing the program....
$java -Xmx128M -Xms16M Test
This is a test. This is, too.
Thwas is a test. This is, too.
Thwas was a test. This is, too.
Thwas was a test. Thwas is, too.
Thwas was a test. Thwas was, too.

import java.io.*;
public class Test {

   public static void main(String args[]) {
      String name="Hello World";
  System.out.println(name.substring(6));
  System.out.println(name.substring(0,5));

  }

}

Compiling the source code....
$javac Test.java 2>&1

Executing the program....
$java -Xmx128M -Xms16M Test
World
Hello

package com.myjava.string;

public class MyStringIndexOf {

    public static void main(String[] a){
   
        String str = "Use this string for testing this";
        System.out.println("Basic indexOf() example");
        System.out.println("Char 's' at first occurance: "+str.indexOf('s'));
        System.out.println("String \"this\" at first occurance: "+str.indexOf("this"));
        /**
         * Returns the first occurance from specified start index
         */
        System.out.println("First occurance of char 's' from 4th index onwards : "
                            +str.indexOf('s',4));
        System.out.println("First occurance of String \"this\" from 6th index onwards: "
                            +str.indexOf("this",6));
       
    }
}

Compiling the source code....
$javac Test.java 2>&1

Executing the program....
$java -Xmx128M -Xms16M Test
Basic indexOf() example
Char 's' at first occurance: 1
String "this" at first occurance: 4
First occurance of char 's' from 4th index onwards : 7
First occurance of String "this" from 6th index onwards: 28

import java.io.*;
public class Test {

   public static void main(String args[]) {
      String str = new String("STMIK BUMI GORA");
      System.out.println("Initial string is: " + str);
      System.out.println("Start position=4 and no end position specified: " + str.substring(4));
      System.out.println("Start position=2 and end position=11: " + str.substring(2, 11));
// if start = end, then the extracted string will be empty
      System.out.println("Start position=3 and end position=3: " + str.substring(3, 3).isEmpty());
// In the following cases we will get
// java.lang.StringIndexOutOfBoundException
// if (start < 0 or end < 0)
      System.out.println("Start position=-2 and end position=5: " + str.substring(-2, 5));
// if (start > end)
      System.out.println("Start position=5 and end position=2: " + str.substring(5, 2));
  }

Compiling the source code....
$javac Test.java 2>&1

Executing the program....
$java -Xmx128M -Xms16M Test
Initial string is: STMIK BUMI GORA
Start position=4 and no end position specified: K BUMI GORA
Start position=2 and end position=11: MIK BUMI 
Start position=3 and end position=3: true
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -2
at java.lang.String.substring(String.java:1960)
at Test.main(Test.java:14)
Mari kita lanjutkan, dan kita lihat The equals Method.

0 komentar:

Posting Komentar