Reputation: 550
How to take input from User as String given the String Length
The problem link:
http://www.practice.geeksforgeeks.org/problem-page.php?pid=295
MyApproach:
I used Scanner for the task to take the number of testcases and then took the String length as input:
But I am confused how to take String of specified length.My search found that there is no method or constructor which can take string of specified length.
Can Anyone guide?
Below is my code:
Scanner sc=new Scanner(System.in);
int T=sc.nextInt();
for(int i=1;i<=T;i++)
{
int Strlength=sc.nextInt();
String strnew=sc.next(); //How to take Stringofspecified character
..........
.........
}
Upvotes: 0
Views: 13037
Reputation: 11
String S = "";
Scanner sc = new Scanner(System.in);
int D = sc.nextInt();
for(int i=0;i<D;i++) {
S = S + sc.next();
}
System.out.println(S);
Upvotes: 1
Reputation: 174
I figured out a way to do this.
Scanner sc = new Scanner(System.in);
int strLength = sc.nextInt();
sc.nextLine();
String strInput = sc.nextLine();
if(strInput.length()>strLength)
{
str = str.substring(0, strlength);
}
// Now str length is equal to the desired string length
Upvotes: 0
Reputation: 1680
A way to do this is inserting some kind of test, e.g.:
String strnew;
do{
strnew=sc.next(); //How to take Stringofspecified character
}
while(strnew.length() != Strlength);
Upvotes: 1
Reputation: 10101
You can't do that, you can simply force the user to reinsert the String if the length of the String does not match the given input.
Scanner sc=new Scanner(System.in);
int T=sc.nextInt();
for(int i=1;i<=T;i++)
{
int Strlength=sc.nextInt();
String strnew = null;
while (strnew == null || strnew.size() != Strlength) {
strnew = sc.next();
}
..........
.........
}
Upvotes: 2