Day 16: Exceptions - String to Integer
Hint
Many languages offer some functionality for parsing an integer value from a string token. Here are a few languages and their respective integer parsing functions:
Java: Integer.parseInt(token)
C++: stoi(token)
Python: int(token)
Ruby: Integer(token)
Each of these functions will raise an error (i.e.: throw an exception) when the argument passed as the token parameter cannot be converted to an integer. Most languages have built-in exception handling methods such as try-catch or begin-rescue that enable you to code specific behaviors to handle execution issues.
Aim
To parse an integer from a string and print a custom error message.
Task
Read a string,S, and print its integer value; if cannot be converted to an integer, print Bad String.
Note: You must use the String-to-Integer and exception handling constructs built into your submission language. If you attempt to use loops/conditional statements, you will get a score.
Input Style
A single string, S.
Constraints
1<=|S|<=6, where |S| is the length of string S .
S is composed of either lowercase letters (a-z) or decimal digits (0-9).
Output Style
Print the parsed integer value of S , or Bad String if S cannot be converted to an integer.
Sample Input 0
3
Sample Output 0
3
Sample Input 1
ga
Sample Output 1
Bad String
Explanation
Sample Case 0 contains an integer, so it should not raise an exception when we attempt to convert it to an integer. Thus, we print the 3.
Sample Case 1 does not contain any integers, so an attempt to convert it to an integer will raise an exception. Thus, our exception handler prints Bad String.
Recommended: Please try your approach on your integrated development environment (IDE) first, before moving on to the solution.
Few words from CodingHumans : Don't Just copy paste the solution, try to analyze the problem and solve it without looking by taking the the solution as a hint or a reference . Your understanding of the solution matters.
HAPPY CODING 😁
Solution
( Java )
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String S=sc.nextLine();
try
{
int no;
no=Integer.parseInt(S);
System.out.println(no);
}
catch(Exception a)
{
System.out.println("Bad String");
}
}
}
Solution
(C++)
#include <string>
#include <cstring>
#include <iostream>
using namespace std;
int main(){
string S;
cin >> S;
try{
int n;
n=stoi(S);
cout<<S<<endl;
}
catch(exception e){
cout<<"Bad String";
}
return 0;
}
If you have any doubts regarding this problem or need the solution in other programming languages then leave a comment down below .