# 1. Introduction

Converting a string to an integer is a common requirement in programming. In Scala, this task can be achieved in several ways, each with its own use cases and considerations. This blog post will discuss different methods to convert a string to an integer in Scala.

# 2. Program Steps

1. Define a string that represents an integer.

2. Demonstrate different methods to convert the string to an integer, including using toInt, Integer.parseInt, and handling exceptions.

3. Print the results to verify the conversion.

4. Execute the code to observe each method's behavior.

# 3. Code Program

``````object StringToIntDemo extends App {
val numberString = "123"

// Using toInt
val result1 = numberString.toInt
println(s"Using toInt: \$result1")

// Using Integer.parseInt
val result2 = Integer.parseInt(numberString)
println(s"Using Integer.parseInt: \$result2")

// Using toInt with exception handling
try {
val result3 = "abc".toInt
println(s"Using toInt with exception handling: \$result3")
} catch {
case e: NumberFormatException => println("Exception caught: Not a valid integer")
}

// Using Option with toInt
val result4 = toInt(numberString)
println(s"Using Option with toInt: \$result4")

// Helper method to convert string to Option[Int]
def toInt(s: String): Option[Int] = {
try {
Some(s.toInt)
} catch {
case e: NumberFormatException => None
}
}
}
``````

### Output:

```Using toInt: 123
Using Integer.parseInt: 123
Exception caught: Not a valid integer
Using Option with toInt: Some(123)
```

### Explanation:

1. numberString.toInt directly converts the string to an integer. This method throws a NumberFormatException if the string is not a valid integer.

2. Integer.parseInt(numberString) is the Java way of converting a string to an integer. It's similar to toInt but comes from Java's standard library.

3. The third method demonstrates exception handling with toInt. Attempting to convert "abc" to an integer results in a NumberFormatException, which is caught and handled.

4. The toInt method with Option returns Some(int) if the conversion is successful or None if it fails. This approach is useful for avoiding exceptions and handling invalid inputs gracefully.