skip to main content

kiesler.at

JAVAs StringTokenizer
updated by rck, 2006-12-31

Oft genug hat man einen String, in dem nach gewissen Zeichen getrennte Dinge drinnen stehen. Sei es ein Datum, durch . getrennt. Oder auch ein zu berechnender Term mit Operationen der Art +, -, *, etc. Der JAVA StringTokenizer zerlegt solche Zeichenketten m�helos und spart viel Arbeit.

1 | 2 | 3 | 4 | 5 | 6 | 7

DatumCheck.java

1 /*      DatumsCheck.java
2  *
3  *      Demonstation des JAVA StringTokenizer anhand
4  *      einer Datumspr�ffunktion. Entspricht im Wesentlichen
5  *      der EPROG-Aufgabenstellung 1064 (nicht ganz).
6  *
7  *      http://www.kiesler.at/
8  *
9  */
10 
11 
12 import java.io.*;
13 import java.util.*;
14 
15 
16 public class DatumsCheck {
17 
18         static String tt, mm, jj;
19 
20 
21         public static void checkLengths()
22                 throws Exception
23         {
24                 if(tt.length()!=2)
25                         throw new Exception("Komponente "+tt+
26                                 " nicht zweistellig!");
27 
28                 if(mm.length()!=2)
29                         throw new Exception("Komponente "+mm+
30                                 " nicht zweistellig!");
31 
32                 if(jj.length()!=2)
33                         throw new Exception("Komponente "+jj+
34                                 " nicht zweistellig!");
35         }
36 
37 
38         public static boolean validJahr(int jahr) {
39                 return( (jahr>0) && (jahr<=99) );
40         }
41 
42         public static boolean validMonat(int monat) {
43                 return( (monat>0) && (monat<=12) );
44         }
45 
46 
47         public static boolean isSchaltjahr(int jahr) {
48                 return( ( (jahr %   4) == 0) &&
49                         ( (jahr % 100) != 0) &&
50                         ( (jahr % 400) != 0) );
51         }
52 
53         public static boolean validTag(int t, int m, int j) {
54 
55                 if((t<1) || (t>31))
56                         return(false);
57 
58                 if(m==2)
59                         if(isSchaltjahr(j))
60                                 return(t<=29);
61                         else
62                                 return(t<=28);
63 
64                 if( (m==4) || (m==6) || (m==9) || (m==11) )
65                         return(t<=30);
66 
67                 return(true);
68         }
69 
70 
71         public static boolean checkRanges()
72                 throws Exception
73         {
74                 int tag=Integer.parseInt(tt);
75                 int monat=Integer.parseInt(mm);
76                 int jahr=Integer.parseInt(jj);
77 
78                 if(     validJahr(jahr) &&
79                         validMonat(monat) &&
80                         validTag(tag, monat, jahr) )
81 
82                         return(true);
83 
84                 else
85                         return(false);
86         }
87 
88 
89 
90         public static boolean check(String s)
91                 throws Exception
92         {
93                 // gew�nschtes Format: TT.MM.JJ
94                 
95                 StringTokenizer st=new
96                         StringTokenizer(s, ".");
97 
98                 tt=st.nextToken();
99                 mm=st.nextToken();
100                 jj=st.nextToken();
101 
102                 if(st.hasMoreTokens())
103                         throw new Exception
104                                 ("zuviele Komponenten!");
105 
106                 checkLengths();
107 
108                 if(checkRanges())
109                         return(true);
110                 else
111                         return(false);
112         }
113 
114 
115         public static void main(String args[])
116                 throws Exception
117         {
118                 InputStreamReader ins=new InputStreamReader(System.in);
119                 BufferedReader reader=new BufferedReader(ins);
120 
121                 try {
122 
123                         String eingabe=reader.readLine();
124 
125                         if(check(eingabe))
126                                 System.out.println(eingabe+" ist g�ltig.");
127                         else
128                                 System.out.println(eingabe+" ist ung�ltig!");
129 
130                 } catch(Exception e) {
131 
132                         System.err.println("Problem: "+e);
133                 }
134         }
135 }

1 | 2 | 3 | 4 | 5 | 6 | 7



RSSComments - Make a comment
The comments are owned by the poster. We are not responsible for its content.
RSSAll Articles
2008, 2007, 2006, 2005, 2004

What's Related

Documents

�bersetzerbau

Link Manager

�bersetzerbau
EPROG
JAVA

Article Manager

EPROG
�bersetzerbau
JAVA

FAQ

�bersetzerbau

RSS News Feeds

JAVA

Latest Updates

AdministrativeTexts
updated by freddiemac1993, 2013-06-14
wiki

Re: adventures
created by brittdavis10, 2012-02-23 (1 rply, 3 views)
thread

Re: how to run phpwebsite...
created by alexander, 2011-08-25 (2 rpls, 3607 views)
thread

Re: Forum tags
created by HaroldFaragher, 2011-08-22 (3 rpls, 8488 views)
thread


Zu den KO2100 Foren