====== Αλφαριθμητικά (Strings) ======
Τα αλφαριθμητικά στην Java υλοποιούνται μέσω της κλάσης [[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html|java.lang.String]]. Κάθε αλφαριθμητικό στην Java είναι ένα αντικείμενο της κλάσης String το οποίο δεν μπορεί να μεταβληθεί μετά την δημιουργία του(//immutable//).
Σε μία μεταβλητή τύπου String μπορείτε να αναθέσετε απευθείας ένα αλφαριθμητικό δηλώνοντας το μέσα σε διπλά εισαγωγικά.
String str = "Hello World!";
Εάν θέλετε να εισάγεται τον χαρακτήρα '"' μέσα στο αλφαριθμητικό σας θα πρέπει να τον αντικαταστήσετε με τον χαρακτήρα '\"', όπως παρακάτω:
String str = "Her dog is named \"Lili\"";
Εναλλακτικά μπορείτε να χρησιμοποιήσετε έναν από τους διαθέσιμους κατασκευαστές της κλάσης για να παράγεται ένα String. Για παράδειγμα μπορείτε να παράγετε String από ένα πίνακα χαρακτήρων ως εξής:
public class StringExample {
public static void main(String [] args) {
char [] charSequence = { 'H','e','l','l','o',' ','W','o','r','l','d','!' };
String str1 = new String(charSequence);
String str2 = new String(charSequence, 0, 5);
String str3 = new String(charSequence, 6, 5);
System.out.println("str1: " + str1);
System.out.println("str2: " + str2);
System.out.println("str3: " + str3);
}
}
Οι τελευταίες δύο γραμμές παράγουν τα αλφαριθμητικά ''Hello'' και ''World''.
Δύο ή περισσότερα αλφαριθμητικά μπορούν να συνεννοηθούν παράγοντας ένα νέο αλφαριθμητικό. Για την συνένωση δύο αλφαριθμητικών μπορείτε να χρησιμοποιήσετε τη μέθοδο concat() ή τον τελεστή ''+'', όπως παρακάτω:
public class StringExample {
public static void main(String [] args) {
String str1 = "Hello ".concat("World!");
String str2 = "Hello " + "World!";
System.out.println("str1: " + str1);
System.out.println("str2: " + str2);
}
}
Κάθε αλφαριθμητικό διαθέτει συγκεκριμένο μήκος χαρακτήρων που δίνεται από την μέθοδο //length()//, όπως παρακάτω
public class StringExample {
public static void main(String [] args) {
String str = "Hello World!";
int strLength = str.length();
System.out.println("String length is "+strLength);
}
}
Τέλος μπορείτε να δημιουργήσετε μορφοποιημένα Strings μέσω της μεθόδου //format()// (ανάλογη της printf() στη C) όπως παρακάτω.
public class StringExample {
public static void main(String [] args) {
float floatVar = 5.333F; // if you miss the F at the end you get an error about possible loss of precision.
int intVar = 100;
String stringVar = "Python";
String fs = String.format("The value of the float variable is " +
"%f, while the value of the integer " +
"variable is %d, and the string " +
"is \"%s\"", floatVar, intVar, stringVar);
System.out.println(fs);
}
}
===== Η κλάση StringBuffer =====
Για την κλάση String αναφέραμε ότι τα αλφαριθμητικά που ανήκουν σε αυτή δεν μεταβάλλονται. Εάν θέλετε να προσθέσετε ή να αφαιρέσετε περιεχόμενο από ένα αλφαριθμητικό, χωρίς απαραίτητα να δημιουργήσετε νέο μπορείτε να χρησιμοποιήσετε την κλάση [[https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html|java.lang.StringBuffer]]. Βασικό χαρακτηριστικό της κλάσης StringBuffer είναι η ύπαρξη μεθόδων για την μεταβολή του αλφαριθμητικού όπως
* **append:** προσθήκη χαρακτήρων στο τέλος του αλφαριθμητικού.
* **insert:** προσθήκη ενός αλφαριθμητικού στη θέση //offset//.
* **reverse:** αντιστροφή στου αλφαριθμητικού.
* **delete:** διαγραφή μέρους του αλφαριθμητικού.
Μπορείτε να λάβετε ένα αντικείμενο τύπου String από ένα αντικείμενο της κλάσης StringBuffer χρησιμοποιώντας μία από τις παρακάτω μέθοδους
* toString();
* substring(0);
Δείτε το παράδειγμα χρήσης των παραπάνω μεθόδων.
public class StringBufferExample {
public static void main(String [] args) {
String hello = "Love Java";
StringBuffer helloBuffer = new StringBuffer(hello);
System.out.println("append: "+ helloBuffer.append(" Beans!"));
System.out.println("delete: "+ helloBuffer.delete(5, helloBuffer.length()) );
System.out.println("insert: "+ helloBuffer.insert(5, "coffee Beans "));
System.out.println("reverse:"+ helloBuffer.reverse() );
}
}
|Προηγούμενο: [[:java:wrapper_classes | Βασικοί τύποι δεδομένων και ισοδύναμοι αναφορικοί τύποι ]] | [[:toc | Περιεχόμενα]] | Επόμενο: [[:java:enum | Απαριθμήσεις ]]|