Solved

Extension of "Detecting a Character" question

Posted on 2004-10-12
13
214 Views
Last Modified: 2010-05-18

Basically the question is answered but i need more...

What i need is to hav a statement that detects if the string has items other than:

any integer, (, ), +, -, / and *.

if any of the above r detected thats ok... anything else is bad

so basically,

if ( not any integer, (, ), +, -, / and *) {
    System.err.println("INVALID");
    System.exit(1);
}
0
Comment
Question by:AnthonyCosenza
  • 6
  • 4
  • 3
13 Comments
 
LVL 14

Expert Comment

by:sudhakar_koundinya
ID: 12288403
String str="Abcd";

if(str.matches("A-Za-z"))
{
//ok
}
else
{
//not ok
}
0
 
LVL 14

Expert Comment

by:sudhakar_koundinya
ID: 12288445
oops sorry wrong answer
0
 

Author Comment

by:AnthonyCosenza
ID: 12288455
ok, i'm not just worried about characters... i'm worried about things like "#" or "\"

basically any small little piece of text that could cause mischief

Thanks
0
 
LVL 14

Expert Comment

by:sudhakar_koundinya
ID: 12288569
booleab b=str.matches.(", \\(\\ ) \\+\\ - / \\ *");
if(b)
for(int i=0;i<str.length);i++)
{
  if(!Character.isDigit(str.charAt(i)
  {
      b=false;
        break;  
  }

}

if(b)
//ok
else
//not ok
0
 

Author Comment

by:AnthonyCosenza
ID: 12288630
May i ask wat this line is doin??

if(!Character.isDigit(str.charAt(i)

Thanks again
0
 
LVL 14

Expert Comment

by:sudhakar_koundinya
ID: 12289218
ignore previous one
try this

    if(str.matches("[0-9\\,\\(\\)\\+\\-\\*]+"))
    {
      System.err.println("ok");
    }
    else
    {
              System.err.println("not ok");
    }
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 14

Assisted Solution

by:sudhakar_koundinya
sudhakar_koundinya earned 250 total points
ID: 12289237
missed / character

This works

if(str.matches("[0-9\\,\\(\\)\\+\\-\\*/]+"))
    {
      System.err.println("ok");
    }
    else
    {
              System.err.println("not ok");
    }
0
 
LVL 37

Expert Comment

by:zzynx
ID: 12290944
>>May i ask wat this line is doin??
>>if(!Character.isDigit(str.charAt(i)

It checks if the character at position i in the String str is a digit
0
 
LVL 37

Accepted Solution

by:
zzynx earned 250 total points
ID: 12291256
Anthony,

I think you want to allow
1) all digits
2) (
3) )
4) +
5) -
6) /
7) *

No commas, right?

Then this is the reg expression:

     if ( !str.matches("[0-9\\(\\)\\+\\-\\*/]+") ) {
        System.err.println("INVALID");
        System.exit(1);
    }

If you want to allow spaces too:  (because now "5 + 6" is invalid)

     if ( !str.matches("[0-9 \\(\\)\\+\\-\\*/]+") ) {
        System.err.println("INVALID");
        System.exit(1);
    }

Remarks:
[1]
This doesn't recognize weird strings like
        String str = "6+*/-5-15*-6"
as invalid.

[2]
All six comments you accepted already are graded with a B.
Is that the maximum grade you'll ever give?
Here at EE, were used to get an A for correct answers/solutions,
a B for answers that helped to find the correct answer/solution and
a C for answers that help a little bit in finding the solution.

Did you know that giving an A-grade doesn't cost *you* any more points than the # originally set, while *we* get more points?
(A=x4, B=x3 and C=x2)
0
 

Author Comment

by:AnthonyCosenza
ID: 12292807
I've only been givin B grades because they are helpful solutions yet they r only parts of a bigger problem...
I had no idea that they affected the points system.

Anyway.. i hav another problem..

I hav something like this

while (st.hasMoreTokens( )) {
    if ( !token.matches("[0-9\\(\\)\\+\\-\\*/]+") ) {
        System.err.println("INVALID EXPRESSION");
        System.exit(1);
    } else {
        System.out.println(token);
        token = st.nextToken( );
    }
}
System.exit(1);

Where i hav a StringTokenizer goin through the string which is in a file...
What happens here is if i hav a expression in the file, for example ( 4 + 3 )..
it prints:

(
4
+
3

.. It doesnt print watever the last item is...

Puzzled..
0
 
LVL 37

Expert Comment

by:zzynx
ID: 12295181
Can you show us what StringTokenizer you use?

Remark:
StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

Thanks for accepting
0
 
LVL 14

Expert Comment

by:sudhakar_koundinya
ID: 12295393
Thanks for points :)

zzynx,
The last question was already answered here http://www.experts-exchange.com/Programming/Programming_Languages/Java/Q_21165896.html by CEHJ  

;-)
0
 
LVL 37

Expert Comment

by:zzynx
ID: 12295406
>> The last question was already answered
Always handy to know. ;°)
Thanks sudhakar.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
groupNoAdj 7 86
Hibernate Not Rolling Back When something fails in a stored procedure 2 52
rhino JavaScript import, load 25 67
session migration servlets 2 26
By the end of 1980s, object oriented programming using languages like C++, Simula69 and ObjectPascal gained momentum. It looked like programmers finally found the perfect language. C++ successfully combined the object oriented principles of Simula w…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
This video teaches viewers about errors in exception handling.

896 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now