String Manipulation
What is string manipulation?
- String manipulation or string handling is the use of programming techniques to modify, analyse or extract information from a string
- Examples of string manipulation include:
- Case conversion (modify)
- Length (analyse)
- Substrings (extract)
- Concatenation (modify)
- ASCII conversion (analyse)
Case conversion
- The ability to change a string from one case to another, for example, lower case to upper case
Function | Pseudocode | Python | Output |
Uppercase |
|
|
"SARAH" |
Lowercase |
|
|
"sarah" |
Title case |
|
|
"Inspector Calls" |
Length
- The ability to count the number of characters in a string, for example, checking a password meets the minimum requirement of 8 characters
Function | Pseudocode | Python | Output |
Length |
|
|
7 |
|
|
"Password too short" |
Substring
- The ability to extract a sequence of characters from a larger string in order to be used by another function in the program, for example, data validation or combining it with other strings
- Extracting substrings is performed using 'slicing', using specific start and end to slice out the desired characters
- Substring is 0 indexed (first value is 0 not 1)
Function | Pseudocode | Python | Output |
Substring |
substring(starting character, number of characters) |
string[start character : end character] |
|
|
|
"vis" | |
left(number of characters) |
|||
|
|
"Revi" |
|
right(number of characters) |
|||
|
|
"sion" |
Concatenation
- The ability to join two or more strings together to form a single string
- Concatenation uses the '+' operator to join strings together
Function | Pseudocode | Python | Output |
Concatenation |
|
|
"SarahJones" |
|
|
"Sarah Jones" | |
|
|
"Hello, Sarah" |
ASCII conversion
- The ability to return an ASCII character from a numerical value and vice versa
Function | Pseudocode | Python | Output |
ASCII conversion |
|
|
"65" |
|
|
"a" |
What is casting?
- Casting is when you convert one data type to another data type
Example
- The following Python program is used to capture a users age to determine if they are old enough to vote
Line | Python code |
01 | age = input("Enter age") |
02 | if age >= 18: |
03 | print("Old enough to vote") |
04 | else: |
05 | print("Too young to vote") |
- In this example, on line 01, no specific data type is requested
- By default the data type is stored as 'string'
- On line 02, a run-time error would occur because age is stored as a string and is being compared to an integer value in the selection statement
- Casting the age from a string to an integer would solve the error
Line | Python code |
01 | age = input("Enter age") |
02 | if int(age) >= 18: |
03 | print("Old enough to vote") |
04 | else: |
05 | print("Too young to vote") |
- In the corrected code, casting is highlighted in green
String Conversion Operations
Conversion | Example | Output |
From String to Integer |
|
10 |
From Integer to String |
|
"5" |
From String to Real |
|
16.5 |
From Real to String |
|
"5.4" |
Exam Tip
Remember that the '+' operator is used for concatenation of strings BUT is also the mathematical operator for addition
It is important to remember, that the same operator symbol performs different roles on different types of data (integer/string)
Worked example
A school wants to use a program to take a students first name, last name and year of entry as inputs and use them to create a username
They want the username to follow the rule:
- Initial + First 3 letters of last name + year
For example, a student named David Hamilton who started in 2024 would have the username:
- DHam2024
The algorithm has been started below:
Line | Algorithm |
01 | FName = input("Enter first name") |
02 | LName = input("Enter last name") |
03 | year = input("Enter year") |
04 | username = |
05 | print(username) |
Use string manipulation to complete line 04 to create the username [3]
How to answer this question
- What techniques do we need to use to create the username? substring to extract the parts of the first and last name
- Concatenation to join them together
Answer
Line | Algorithm |
01 | FName = input("Enter first name") |
02 | LName = input("Enter last name") |
03 | year = input("Enter year") |
04 | username = FName.substring(0,1) + LName.substring(0,3) + year |
05 | print(username) |
Guidance
FName.substring(0,1)
1 markLName.substring(0,3)
1 markusername = FName.substring(0,1) + LName.substring(0,3) + year
1 mark