Scala Programming: Create a new string which is 4 copies of the 2 front characters of a given string
Write a Scala program to create a new string which is 4 copies of the 2 front characters of a given string.If the given string length is less than 2 return the original string.
Pre-Knowledge (Before You Start!)
Before attempting this exercise, you should be familiar with the following concepts:
- Scala Objects: Understanding how to define objects using the object keyword.
- Functions in Scala: How to create functions with parameters and return values.
- String Operations: Using methods like substring() to extract parts of a string.
- String Length: Using the length property to determine the number of characters in a string.
- Conditional Statements: Implementing if-else conditions to handle different string lengths.
- String Repetition: Using the * operator to repeat a substring multiple times.
- Main Method: Understanding the structure of the main() function in Scala.
- Printing to Console: Using println() to display results.
Hints (Try Before Looking at the Solution!)
Try to solve the problem using these hints:
- Hint 1: Define an object in Scala to contain the function.
- Hint 2: Create a function that accepts a string as an argument.
- Hint 3: Find the length of the string using length.
- Hint 4: If the string has fewer than 2 characters, return it as is.
- Hint 5: Extract the first two characters using substring(0,2).
- Hint 6: Repeat the extracted substring 4 times using the multiplication operator.
- Hint 7: Test your function with different string inputs, including edge cases like single-character strings.
Sample Solution:
Scala Code:
// Define an object named scala_basic
object scala_basic {
// Define a function named test with parameter str1 of type String, returning a String
def test(str1: String): String =
{
// Check if the length of the input string is less than 2; if true, return the string as is
if (str1.length < 2)
str1
else
// If false, take the substring of the first two characters and repeat it 4 times
str1.substring(0, 2) * 4
}
// Define the main method, which is the entry point of the program
def main(args: Array[String]): Unit = {
// Print the result of calling test with the argument "Scala"
println("Result: " + test("Scala"))
// Print the result of calling test with the argument "abcd"
println("Result: " + test("abcd"))
// Print the result of calling test with the argument "ab"
println("Result: " + test("ab"))
// Print the result of calling test with the argument "a"
println("Result: " + test("a"))
}
}
Sample Output:
Result: ScScScSc Result: abababab Result: abababab Result: a
Explanation:
Here is the break down of the said Scala code:
- object scala_basic {: This declares an object named scala_basic.
- def test(str1: String): String =: This line defines a function named test that takes a parameter str1 of type String and returns a String. The function checks if the length of the input string is less than 2. If true, it returns the string as is. If false, it takes the substring of the first two characters and repeats it 4 times.
- if (str1.length < 2) str1 else str1.substring(0, 2) 4: This is a conditional expression inside the test function. If the length of the string str1 is less than 2, it returns the string as is. If false, it takes the substring of the first two characters using str1.substring(0, 2) and repeats it 4 times using the operator.
- def main(args: Array[String]): Unit = {: This line defines the main method, which is the entry point of the program. It takes an array of strings (args) as its parameter and returns Unit (similar to void in other languages).
- println("Result: " + test("Scala")): This line calls the "test()" function with the argument "Scala", concatenates the result with the string "Result: ", and prints the entire string to the console.
- println("Result: " + test("abcd")): Similar to the previous line, this calls the "test()" function with the argument "abcd".
- println("Result: " + test("ab")): Another call to the "test()" function with the argument "ab".
- println("Result: " + test("a")): Another call to the test function with the argument "a".
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Exchange the first and last characters in a given string and return the new string.
Next: Create a new string with the last char added at the front and back of a given string of length 1 or more.
What is the difficulty level of this exercise?
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics