dragullar
dragullar

Reputation: 355

how to get string value in java

String Qty1 = "1";
String Qty2 = "2";
String  qtyString = "", bString = "", cString = "";
for(int j = 1; j <= 2; j++)
{
    qtyString = String.valueOf(("Qty" + j)); 
    System.out.println("qtyString = " + qtyString);
}

output:

qtyString = Qty1;

qtyString = Qty2;

I would like to get qtyString = 1, qtyString = 2; I want to print Qty1 and Qty2 value in my for loop. In C#, this code works correctly. I don't know how to get qtyString value as 1, 2 in java.

Upvotes: 2

Views: 24522

Answers (5)

Ashish Jaiswal
Ashish Jaiswal

Reputation: 804

you can try this for java: static String Qty[] = {"1", "2"} ;

public static void main(String[] args) {
    // TODO Auto-generated method stub

    for(int j = 0 ; j < 2 ;j++)
    {
        System.out.println("qtyString = " + Qty[j]);
    }
}

And For Android:

String[] Qty = {"1","2"};
for(int j = 0 ; j < 2 ;j++)
{
   System.out.println("qtyString = " + Qty[j]);
}

Upvotes: 1

user2575725
user2575725

Reputation:

Try this examples:

With enhanced for-loop and inline array:

for(String qty : new String[]{"1", "2"})
  System.out.printf("qtyString = %s\n", qty);

With enhanced for-loop and array:

String [] qtys = {"1", "2"};
for(String qty : qtys)
  System.out.printf("qtyString = %s\n", qty);

Using for-loop and array:

String [] qty = {"1", "2"};
for(int i = 0; qty.length > i; i ++)
  System.out.printf("qtyString = %s\n", qty[i]);

Upvotes: 1

Desmond DAI
Desmond DAI

Reputation: 495

String array is needed if you want to print a list of string:

String[] Qty = {"1", "2"};
String qtyString = null;
for (int j = 0; i<=1; j++) {
    qtyString = Qty[j];
    System.out.println("qtyString = " + qtyString);
}

output:
qtyString = 1
qtyString = 2

Upvotes: 2

ajb
ajb

Reputation: 31699

I don't know for sure what you're trying to do, and you've declared Qty1 twice in your code. Assuming the second one is supposed to be Qty2, then it looks like you're trying to use string operations to construct a variable name, and get the value of the variable that way.

You cannot do that in Java. I'm not a C# expert, but I don't think you can do it in C# either (whatever you did that made you say "it works in C#" was most certainly something very different). In both those languages and in all other compiled languages, the compiler has to know, at compile time, what variable you're trying to access. You can't do it at runtime. (Technically, in Java and C#, there are ways to do it using reflection, depending on how and where your variables are declared. But you do not want to solve your problem that way.)

You'll need to learn about maps. Instead of separate variables, declare a Map<String, String> that maps the name that you want to associate with a value (Qty1, Qty2) with the value (which is also a String in this case, but could be anything else). See this tutorial for more information. Your code will look something like

Map<String, String> values = new HashMap<>();
values.put("Qty1", "1");
values.put("Qty2", "2");

...

 qtyString = values.get("Qty"+j);

(Actually, since your variable name is based on an integer, an array or ArrayList would work perfectly well too. Using maps is a more general solution that works in other cases where you want names based on something else beside sequential integers.)

Upvotes: 1

Taher  Rahgooy
Taher Rahgooy

Reputation: 6696

You should use array of strings for this purpose.

String[] Qty = {"1","2"};
for(int j = 0 ; j < 2 ;j++)
{
   System.out.println("qtyString = " + Qty[j]);
}

Upvotes: 2

Related Questions