View Full Version : ถามเรื่องการตัดคำใน JAVA หน่อยครับ
Secret_Man
17-11-2008, 11:40 PM
คือรบกวนทีนะครับ
พอดีอยากทราบวิธีการตัดคำอะครับ
เช่นๆ ผมกรอกตัวเลข 12345 ลงใน MessageDialog ภายในทีเดียว
แต่จะแยกตัวเลขออกมาให้เป็นแบบ
เอาเลข 1 ไว้ในตัวแปร a[1]
เลข 2 ไว้ในตัวแปร a[2]
.
.
.
ไปเรื่อยๆจน ถึงตัวเลขที่ n ให้ไปเก็บไว้ที่ a[n]
ประมาณนี้อะครับ
Gen0TypE
18-11-2008, 12:58 AM
ไอเดียน่าจะประมาณนี้ครับ
1. หาความยาว string ( ศึกษา string.length ดูครับ)
2. สร้าง array ที่มีขนาดเท่าความยาวของ string
3. วนลูป substring มาทีละ 1 ตัวอักษร แล้วนำค่าที่ได้มาใส่ใน array (ศึกษา string.substring ดูครับ)
ลองศึกษาดูนะครับ คิดว่าไม่น่ายาก จะให้เขียน code ให้เลยคงไม่ได้เพราะ
1. ผมไม่มี java compiler เขียนไปเดี๋ยวผิด แล้วอันที่จริงผมก็เขียนภาษานี้ไม่เป็น แหะๆ :P
2. จะได้เขียนเองเป็นครับ ให้ไอเดียไปแล้ว ;)
Secret_Man
18-11-2008, 01:03 AM
ลองทำดูแล้วครับ
import javax.swing.JOptionPane;
public class Summary {
public static void main (String[]args){
String input = JOptionPane.showInputDialog(null, "Enter Number");
String x[]= new String [3];
int i=0 ;
while(i<=3)
{
x[i] = input.substring(i, i);
i++;
}
String ans = x[0]+x[1]+x[2]+x[3];
JOptionPane.showMessageDialog(null,ans);
}
}
รับค่าได้ แต่ค่าดันไม่ออกมาซะงั้น ผิดบรรทัดไหน หายังไม่เจอซะที ==*
Gen0TypE
18-11-2008, 01:17 AM
บอกได้เลยว่า
x[i] = input.substring(i, i);
ผิดนะครับ ให้ลองไปศึกษาฟังก์ชัน substring ดูใหม่ครับ ว่า parameter แต่ละตัวของมันคืออะไร
แล้วก็ใส่ parameter ให้ถูกตามที่ต้องการนะครับ
แล้วก็อีกอย่าง
String x[]= new String [3];
ผมคิดว่าน่าจะใช้ได้แค่ x[0], x[1], x[2] นะครับ (ภาษา C เป็นอย่างนี้อ่ะครับ - -a)
x[3] ไม่น่าจะใช้ได้ เพราะปกติการประกาศ array n ตัว จะใช้ array ได้ตั้งแต่ตัวที่ 0 ถึง n-1 ครับ
ถ้าต้องการเขียนให้ยืดหยุ่นหน่อย ก็หาความยาวของ string input ก่อน แล้วค่อยสร้าง array เท่าจำนวนความยาวของ input ครับ
Secret_Man
18-11-2008, 01:26 AM
อิอิ ขอบคุณมากครับ
เดี๋ยวผมขอลองแก้ใหม่แปปนึงครับ
เดี๋ยวกลับมารายงานผล หุๆ
Secret_Man
18-11-2008, 01:39 AM
ผลลัพธ์ออกมาแล้วครับ
การทำงานคือ ให้ใส่เลขอะไรไปก็ได้ตั้งแต่ 0-9999
แล้วนำตัวเลขแต่ละตัวมาบวกกัน
import javax.swing.JOptionPane;
public class Summary {
public static void main (String[]args){
String input = JOptionPane.showInputDialog(null,"Enter Number between 0-9999","Summary The Numbers",JOptionPane.QUESTION_MESSAGE);
int x[]= {0,1,2,3,};
int i=0 ;
while(i<=3)
{
x[i] = Integer.parseInt(input.substring(i, i+1));
i++;
}
int ans = x[0]+x[1]+x[2]+x[3];
JOptionPane.showMessageDialog(null,"This is summary :: " + ans);
}
}[/b]
แต่ยังมีบัคคือถ้าใส่เลขเพียง 1 หลัก 2 หลัก หรือ 3 หลัก มันจะติดบัค ==*
Secret_Man
18-11-2008, 02:06 AM
งวดนี้ไม่มีบัคแล้วครับ
ต้องขอบคุณท่าน Gen0TypE มากนะครับที่แนะนำผมตั้งแต่ Visual Basic ^^
import javax.swing.JOptionPane;
public class Summary {
public static void main (String[]args){
String input = JOptionPane.showInputDialog(null,"Enter Number between 0-9999","Summary The Numbers",JOptionPane.QUESTION_MESSAGE);
int Input = Integer.parseInt(input);
if (Input>9999)
{
JOptionPane.showMessageDialog(null,"Please Enter Number between 0-9999");
}
else if (Input>=1000)
{
int x[]= {0,1,2,3};
int i=0 ;
while(i<=3)
{
x[i] = Integer.parseInt(input.substring(i, i+1));
i++;
}
int ans = x[0]+x[1]+x[2]+x[3];
JOptionPane.showMessageDialog(null,"This is summary :: " + ans);
}
else if(Input>=100)
{
int x[]= {0,1,2};
int i=0 ;
while(i<=2)
{
x[i] = Integer.parseInt(input.substring(i, i+1));
i++;
}
int ans = x[0]+x[1]+x[2];
JOptionPane.showMessageDialog(null,"This is summary :: " + ans);
}
else if(Input>=10)
{
int x[]= {0,1};
int i=0 ;
while(i<=1)
{
x[i] = Integer.parseInt(input.substring(i, i+1));
i++;
}
int ans = x[0]+x[1];
JOptionPane.showMessageDialog(null,"This is summary :: " + ans);
}
else if(Input>=0)
{
int x[]= {0};
int i=0 ;
while(i<=0)
{
x[i] = Integer.parseInt(input.substring(i, i+1));
i++;
}
int ans = x[0];
JOptionPane.showMessageDialog(null,"This is summary :: " + ans);
}
else JOptionPane.showMessageDialog(null,"Please Enter Number between 0-9999");
}
}[/b]
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.