Mr Man
Mr Man

Reputation: 1588

Using methods on every item in an Array

I have a string array that is being filled dynamically.... I would like to run this function:

String[] name = request.getParameterValues("name");
myString = name.substring(0, name.length() - 2);  

Now, I know that this wont run, because substring and length methods aren't used for the whole array. Since i dont know how many items will be in this array at any given run time, is there anyway to run the substring/length function for every item in this array?

Upvotes: 3

Views: 25564

Answers (3)

Matt Ball
Matt Ball

Reputation: 359966

You'd use a for loop. There are a couple different ways to do this. The most basic way:

String[] names = request.getParameterValues("name");

for (int i=0; i<names.length; i++)
{
    String name = names[i];
    String myString = name.substring(0, name.length() - 2);
}

Or you can use the "enhanced for" (also called a "for-each" — it's just syntactic sugar):

String[] names = request.getParameterValues("name");

for (String name : names)
{
    String myString = name.substring(0, name.length() - 2);
}

Upvotes: 2

Alnitak
Alnitak

Reputation: 339927

Modern versions of Java (i.e Java 5 and later) have a special for syntax for arrays (and iterables):

String[] name = request.getParameterValues("name");
for (String s: name) {
    String myString = s.substring(0, s.length() - 2);  
}

Upvotes: 4

insumity
insumity

Reputation: 5469

Yes, use you can use length field of the name array. Like this:

for (int i = 0; i < name.length; ++i)
{
    String s = name[i];
    String sbtr = s.substring(0, s.length() - 2);
}

Or a better approach would be this:

for (String s: name)
{
    String sbtr = s.substring(0, s.length() - 2);
}

Upvotes: 6

Related Questions