You need to sign in to do that
Don't have an account?

Error in trailhead challenge
I was solving the challenge of trailhead of Apex development:
The question was:
Create an Apex class that returns an array (or list) of formatted strings ('Test 0', 'Test 1', ...). The length of the array is determined by an integer parameter.The Apex class must be called 'StringArrayTest' and be in the public scope.
The Apex class must have a public static method called 'generateStringArray'.
The 'generateStringArray' method must return an array (or list) of strings. Each string must have a value in the format 'Test n' where n is the index of the current string in the array. The number of returned strings is specified by the integer parameter to the 'generateStringArray' method.
My code is:
public class StringArrayTest {
static List<String> TestArray= new List<String>();
public static String[] generateStringArray(Integer n){
for(Integer i=1;i<=n;i++){
TestArray.add('Test'+i);
}
return TestArray;
}
}
I am able to get desired outpuut but still it is returning an error:
Challenge not yet complete... here's what's wrong:
Executing the 'generateStringArray' method failed. Either the method does not exist, is not static, or does not return the proper number of strings.
Not able to understand what it want exactly
The question was:
Create an Apex class that returns an array (or list) of formatted strings ('Test 0', 'Test 1', ...). The length of the array is determined by an integer parameter.The Apex class must be called 'StringArrayTest' and be in the public scope.
The Apex class must have a public static method called 'generateStringArray'.
The 'generateStringArray' method must return an array (or list) of strings. Each string must have a value in the format 'Test n' where n is the index of the current string in the array. The number of returned strings is specified by the integer parameter to the 'generateStringArray' method.
My code is:
public class StringArrayTest {
static List<String> TestArray= new List<String>();
public static String[] generateStringArray(Integer n){
for(Integer i=1;i<=n;i++){
TestArray.add('Test'+i);
}
return TestArray;
}
}
I am able to get desired outpuut but still it is returning an error:
Challenge not yet complete... here's what's wrong:
Executing the 'generateStringArray' method failed. Either the method does not exist, is not static, or does not return the proper number of strings.
Not able to understand what it want exactly
Please try below code:- And go :
Your Name>Developer Console>Debug>Open Execute Anonymous Window
Paste below code in it Please let us know if this will help you
Thanks
AMit Chaudhary
All Answers
List<String> Returnedstring =StringArrayTest.generateStringArray(5);
System.debug('Returned Array is: ');
For(Integer i=0;i<5;i++){
System.debug(Returnedstring[i]);
}
If the requirement is to ahve the test stings in form ('Test 0', 'Test 1', ...) then you would need to add a blank space while you are building the test data:
I hope this helps ;)
Cheers!
and your full class should be this:
Thx
Please try below code:- And go :
Your Name>Developer Console>Debug>Open Execute Anonymous Window
Paste below code in it Please let us know if this will help you
Thanks
AMit Chaudhary
public static list<String> generateStringArray (Integer n){
List<String> arr = new List<String>();
for(Integer i=0; i<n; i++){
arr.add('Test ' + i); // 'Test ' + i
System.debug(arr[i]);
}
return arr;
}
}
public class StringArrayTest {
public static String[] generateStringArray(Integer length) {
String[] myArray = new List<String>();
for(Integer i=0;i<length;i++) {
myArray.add('Test ' + i);
System.debug(myArray[i]);
}
return myArray;
}
}
after that you need to open debug >> open execution anonymously and then paste the following code then the issue gets resolved
list<string> myArray = StringArrayTest.generateStringArray(10); system.debug('************'+myArray);