หัดเขียนโปรแกรม ภาษาจาวา

Java basic | Java OOP | โครงสร้างข้อมูล | โจทย์ ACM



java - How to check if a string is a number เช็คว่าเป็นตัวเลขหรือตัวอักษร หรือไม่

No comments

Input  



142Sp94r09y+j0i50*5i198++07m6743


จาก input ให้ดึงเอาเฉพาะตัวเลขมาแสดง.

Output

14294090505198076743


Sample Code

 
      String intput = "142Sp94r09y+j0i50*5i198++07m6743";                   
       String number ="";
             for(int i = 0 ; i < intput.length() ;i++){
                   char c = intput.charAt(i);
                 if(Character.isDigit(c)){
                    number += c;
                 }
             }
         System.out.println("output : " +number);

ตัวอย่างการใช้งาน
เช่น เอาไปแก้ปัญหาในโจทย์ Opt String(http://goo.gl/YlfFyX)

เนื้อหาที่เกียวข้อง / ควรศึกษาเพิ่มเติมถ้าไม่เข้าใจ 

share

No comments :

Post a Comment

Java ArrayList Object example

No comments

ArrayList เป็นอีกทางเลือกหนึ่งที่เราไม่ทราบ ขนาด Array ที่แน่นอน และช่วยให้เราสามารถเก็บข้อมูลเป็น object ได้ 
Method ของ ArrayList ที่จะใช้
  • add()    : สำหรับเพิ่มข้อมูลให้ลงใน ArrayList
  • get()     : สำหรับดึงค่าใน ArrayList
  • set()     : สำหรับเปลี่ยนแปลงตำแหน่งข้อมูลใน ArrayList

วันนี้จะเราจะทำโจทย์ที่นำ ArrayList มาประยุกต์ใช้งานกัน
โจทย์ คือ จะให้ไฟล์ students.in ภายในไฟล์จะเป็นข้อมูลนักศึกษามาโดยมี รหัสนักศึกษา ชื่อนักศึกษา คะแนนที่ได้ อยากให้เรียงลำดับคะแนน นักศึกษาจาก มากไปหาน้อย
Student_Id,Student_name,Student_score
53001,Theerapong Hunghuan,50
53002,Vatcharin Phoya,35
53003,Prapakorn Moonnoi,38
53004,Agkasit Tontan,56
53005,Wattanakron Apichit,35
53006,Tanachai Sunarug,68
53007,Chanwit Phuwadkien,66
53008,Wkt Rescue,55
53009,Scream Srisawet,73
53010,Tanachai Sunarug,33
53011,Leng ManDer,46
53012,CupidNoy Sky InNocence,67
(Downloadไฟล์ students.in จาก http://goo.gl/AghNCr )
ตัวอย่างผลลัพธ์ของโปรแกรม
ขั้นตอนในการแก้ปัญหา 
  1. ให้อ่านข้อมูลจากไฟล์ students.in  เข้ามาเก็บใน Arraylist โดยสร้างคลาส Students สำหรับเก็บค่า studentId ,studentName,studentGate หรือจะมองเป็นหนึ่ง object แล้วมา add ใน Arraylist
  2. นำข้อมูลนักศึกษาทั้งหมดมาเรียงจากมากไปหาน้อย การเรียงข้อมูลจากมากไปหาน้อย โดยดึงเฉพาะ sutudentScore มาเปรียบเทียบ แล้วใช้ Method set ของ ArrayList ในการสลับตำแหน่ง
ขั้นตอนที่ 1
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

public class ArrayListExample {
 private static String studentId;
 private static String studentName;
 private static int studentScore;

 public static void main(String[] args) throws IOException {
  BufferedReader readfile = new BufferedReader(new FileReader(new File(
    "C:/students.in")));
  String tmp;

  readfile.readLine();// ไม่เก็บ Student_Id,Student_name,Student_score
  ArrayList studentList = new ArrayList();
  // เก็บข้อมูลนักศึกษาให้ครบ
  while ((tmp = readfile.readLine()) != null) {
   String[] arr = tmp.split(",");
   studentId = arr[0];
   studentName = arr[1];
   studentScore = Integer.parseInt(arr[2]);
   // add ข้อมูลนักศึกษา studentId,studentName,studentGate ใส่
   // studentList
   studentList.add(new students(studentId, studentName, studentScore));
  }
  // show ข้อมูล ดู
  for (int i = 0; i < studentList.size(); i++) {
   System.out.println(studentList.get(i).studentId + " "
     + studentList.get(i).studentName + "   "
     + studentList.get(i).studentScore);
  }

 }
}

// สร้าง class students เพี่อเก็บ studentId ,studentName,studentGate
static class students {
 public String studentId;
 public String studentName;
 public int studentScore;

 students(String studentId, String studentName, int studentScore) {
  this.studentId = studentId;
  this.studentName = studentName;
  this.studentScore = studentScore;
 }
}
รันดู

ขั้นตอนทึ่ 2  ใช้การเรียงข้อมูลแบบ Bubble Sort ในการเรียงข้อมูล

 // Method สำหรับเรืยง ลำดับ score จาก มาก ->น้อย
 static ArrayList sort(ArrayList List) {
  students tmp;
  for (int i = 1; i < List.size(); i++) {
   for (int j = 0; j < List.size() - i; j++) {
    if (List.get(j).studentScore < List.get(j + 1).studentScore) {
     tmp = List.get(j);
     List.set(j, List.get(j + 1));
     List.set(j + 1, tmp);
    }
   }
  }
  return List;
 }
โค้ดทั้งหมด

เนื้อหาที่เกียวข้อง / ควรศึกษาเพิ่มเติมถ้าไม่เข้าใจ 

share

No comments :

Post a Comment