Getting the Length of a String and the Size of a List

Keeping with the theme of working with Strings, there are many times when you need to know the length of that string. For example, when using substring, you want to know how many characters are in the text you just read from the site. Of you want to make sure the text actually has a length or else there is nothing to act upon.

For example, take this small snippet of code:

String address=”1650 E WASHINGTON AVE, NORTH LITTLE ROCK, AR 72114″

println(address.length())

The result would be 50 as there are 50 characters in the line. The length includes the commas.

This could be used to verify the length of a state abbreviation is 2 characters. It could also be used to verify a phone number is 10 digits or that a name is less than 25 characters, such as:

if (address.length()==0)

if (address.length()<2)

In conjunction with the length of a string, it’s possible to get the size of a list. In Groovy, a List is the same as a one dimensional array. A simple List can be set up as:

months=[‘January’, ‘February’, ‘March’, ‘April’, ‘May’, ‘June’, ‘July’, ‘August’, ‘September’, ‘October’, ‘November’, ‘December’]

The variable “months” is the name of my List and it has multiple elements. Each element is within single quotes and separated by a comma. The List also contains an opening and closing bracket.

Another familiar type of List would be state abbreviations. A List of states would be:

states=[‘AL’,’AK’,’AZ’,’AR’,’CA’,’CO’,’CT’,’DE’,’FL’,’GA’,’HI’,

‘ID’,’IL’,’IN’,’IA’,’KS’,’KY’,’LA’,’ME’,’MD’,’MA’,’MI’,’MN’,’MS’,

‘MO’,’MT’,’NE’,’NV’,’NH’,’NJ’,’NM’,’NY’,’NC’,’ND’,’OH’,’OK’,’OR’,

‘PA’,’RI’,’SC’,’SD’,’TN’,’TX’,’UT’,’VT’,’VA’,’WA’,’WV’,’WI’,’WY’]

Although these are static Lists, we can still get the size. The following command can return how many elements are within each list.

println(months.size()) – Would return 12.

println(states.size()) – Would return 50.

Building on this theme, we could then create a list of cities:

cities=[‘Dentsville’,’Woodcreek’,’Las Lomitas’,’Kings Park’,’Willisville’]

And then street names:

streetName=[‘James Kaur’,’Grace Burns’,’Alfie Robertson’,’Harry Wilson’]

And keep going until we created the building blocks to generate a random contact name. This was done within my code to create a random user including name, address, city, state, zip, phone number, email address and company. The length of each list is different, but using the .size() method, I can generate a random number and pick an element from the list.

For example, to pick a random streetName:

number=Math.abs(new Random().nextInt(streetName.size()))

customerStreetName=streetName[number]

The idea would repeat for setting up all the other parts of the customer data.

Other articles of interest:

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Comments
  • Round and Round with the For..Next in Katalon Studio (1)
    • Sweet Ophaline Labador: Hello can you help me how to loop this scenario. Checking the elements is just the same. I want to check that the following function is available in www.siacargo.com: Track Shipment – clicking on this can...
  • How To Disable the Quicken Registration Prompt (30)
    • David: A BIG Thank you! I regularly reinstall Windows OS’s using different hardware configs. In short, Quicken 2011 (it’s March of 2020 as I write this) has been a program I’ve been very happy with and continue to use....
    • Karen L: Today I rang Reckon Australia again, got a different guy and he talked me through the process of getting me a new product key to enter since I already had the licence and it had been extended. Reckon have only extended it by 1...
    • Karen L: I have Australian Quicken 2008 on Windows 8.1. It keeps asking me to renew my licence which Reckon did for me however the activation won’t work. I tried this to disable the registration prompt however it did not stop the...
  • Parsing Strings in Katalon – Split, Substring and Readlines (6)
    • Don Pedro: String tempText=”Date Month January. Revenue $1,355,721.00″ println(tempText.split(“ \$”)[1]) You need to escape the $ with \$ The [1] on the split captures characters on the right of the split [0]...
    • Prasad: Hi, I need to get the substring from the below string ‘Date Month January. Revenue $1,355,721.00’ I want to extract text after $ value. Please help Thank you
  • Working with Dates and Date Formatting in Katalon Studio (15)
    • Sangeethaa: How to get previous day’s date(Yesterday’s date)? Actually I was using today.previous() before,it was working fine till today morning.Now its not retrieving right date. Can anyone please guide me on this.
    • Don Pedro: That could be a little tricky. First, is the text/format always going to be the same? You will need to do some parsing. Separate the first but of text at 2019. After that, split the text again to get rid of Central Standard...
    • Don Pedro: It should be of the same Date type as today. You could then do some calendar trickery with Calendar /*Calendar c = Calendar.getInstance(); //c.set(Calendar.MONTH, 1) //Set the month, 0=January, 11=December println...
    • josh: I’m testing a page with a string like “Updated November 21, 2019 16:25:32 PM Central Standard Time.” How might I capture the date and time and compare it to current time to verify that the update time was within...
    • zakir hussain: today = new Date() lastWeek = (today – 1.week) can u please help me in understanding what is the return type of lastweek? and I wanted to set nextyear date how can i do it
  • Output status messages and test information by writing to the Log File Viewer in Katalon Studio (6)
    • Saranya: Good One. Could you plz share link to access all your katalon related blogs. ThankQ
    • Rodrigo Calabretta: I’m using the KeywordUtil.markFailed or KeywordUtil.markError and my test stops is being shown as Error and If I use in the @afterTestCase the testCaseContext.getTestCaseSta tus() to show the status test case...
  • Setting up Environment Profiles in Katalon Studio (2)
    • Don Pedro: Not quite sure I understand. The term “Execution Profile” is normally used now, but they are still GlobalVariables and are created in the same way for version 7 as previous. You make a new execution profile, then...
  • Here is my drive cluster (2)
    • Don Pedro: While I still have those drives, the drive cluster looks nothing like that now. Almost all of my external drives have had the cases removed and they have been installed into a series of MediaSonic 8 Bay Drive Enclosures. I...