السلام عليكم إخواني :
قمت إخواني بكتابة الكود الذي سترونه , والهدف منه هو تقسيم النص إلى Tokens , على حسب كل من : المسافات , وإشارة يساوي "=" , وإشارة ":" ,
ولكن هناك شرط بسيط وهو : إذا أتت إشارة يساوي "=" وراء إشارة ":" , فيجب أن يتم أخذهما ككلمة واحدة ":=" ,
مثال
5:=5
فيجب أن يكون الناتج :
5 := 5
.
لكن المشكلة في الكود , انه إذا قمت بكتابة أي رقم أو أي كلمة وراء هذه الإشارة ":" غير إشارة اليساوي , فإن هذا الرقم أو الكلمة لا تظهر, إليكم الكود والنتائج .
الكـــــــــــود:
import java.util.*;
import javax.swing.*;
public class TokenizerTest
{
public static void main(String[]args)
{
JTextArea jt=new JTextArea(30,30);
JOptionPane.showMessageDialog(null,jt);
StringTokenizer token=new StringTokenizer(jt.getText()," :=",true);
while(token.hasMoreTokens())
{
String str=token.nextToken();
if(str.equals(":"))
{
StringTokenizer temp=token;
if(temp.hasMoreTokens())
{
String strTemp= temp.nextToken();
if(strTemp.equals("="))
str=str.concat(strTemp);
}
}
System.out.println(str);
}
}
}النتــــــائج:
إذا قمت بإدخال النص التالي في البرنامج
5=5 20:=20 15:25
كان من المنظقي أن يكون الجواب كالاتي :
5 = 5 20 := 20 15 : 25
لكن الجواب يكون كالاتي :
5 = 5 20 := 20 15 :
