Java for multiple loop variables
I'm not sure why my Java code will not compile, any suggestions would be appreciated.
String rank = card.substring(0,1);
String suit = card.substring(1);
String cards = "A23456789TJQKDHSCl";
String[] name = {"Ace","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King","Diamonds","Hearts","Spades","Clubs"};
String c ="";
for(int a = 0, b = 1; a<cards.length-1; b=a+1; a++;){
if(rank===cards.substring(a,b){
c+=name[a];
}
}
system.out.println(c);
source to share
-
cards.length()
, notcards.length
(length
is a methodjava.lang.String
, not an attribute ). -
It's
System.out
(capital's), notSystem.out
. See java.lang.System . -
it
for(int a = 0, b = 1; a<cards.length()-1; b=a+1, a++){
not
for(int a = 0, b = 1; a<cards.length-1; b=a+1; a++;){
-
Syntactically it is
if(rank == cards.substring(a,b)){
, notif(rank===cards.substring(a,b){
(doubles are equal, not thrice equal; there is no closing parenthesis), but for comparison, if the two strings are equal, you need to useequals()
:if(rank.equals(cards.substring(a,b))){
You should probably consider downloading Eclipse , which is an integrated development environment (not only) for Java development. Eclipse shows you errors as you type and also provides help to fix them. This makes Java development much easier.
source to share
Instead of this:
for(int a = 0, b = 1; a<cards.length-1; b=a+1; a++;){
It should be
for(int a = 0, b = 1; a<cards.length()-1; b=a+1, a++){
^ ^ ^
| | |
| | |
-------------------------------------------Note the changes
|
v |
if(rank==cards.substring(a,b){ |
-------------------------------------------------------------
|
v
System.out.println(c); //capital S in system
source to share
for
Only two semicolons are allowed in a loop .
- Before the first semicolon is part of the initialization.
- After the first semicolon and before the second semicolon is part of the condition (boolean must be met).
- After the second semicolon, the part of the manipulation variable (part of the increase / decrease).
If you are initializing multiple variables or manipulating multiple variables, you can achieve this by separating them with a comma (,).
for(int i=0, j=5; i < 5; i++, j--)
NOTE. Multiple conditions separated by commas are NOT allowed.
for(int i=0, j=5; i < 5, j > 5; i++, j--) // This is NOT allowed.
source to share
I think this should work:
String rank = card.substring(0,1);
String suit = card.substring(1);
String cards = "A23456789TJQKDHSCl";
String[] name = {"Ace","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King","Diamonds","Hearts","Spades","Clubs"};
String c ="";
for(int a = 0, b = 1; a<cards.length()-1; b=a+1, a++ )
{
if( rank.equals( cards.substring(a,b) ) )
{
c+=name[a];
}
}
System.out.println(c);
source to share