Solution 1 :
How about
String[] newArray=new String[3];
//Copy the first three elements into newArray
System.arraycopy(s,0,newArray,0,3);
Solution 2 :
After thinking a bit I figured a solution out without the need of creating new array:
int INSPECTION_LENGTH=3;
String query="two";
public static boolean b(String[] s,int length,String query){
for(int i=0;i<length;i++){
if(s[i].equals(query)){
return true;
}
}
return false;
}
Solution 3 :
Make a sub-list of List
If using a List
such as ArrayList
rather than a simple array, you can produce a sub-list that is based on the original but masks away unwanted elements.
Make a List
from your array.
List < String > allStrings = new ArrayList<>( Arrays.asList( array ) ) ;
Of, if you want a non-modifiable list, use List.of
.
List < String > allStrings = List.of( array ) ;
Get your sub-list, calling List::subList
. We must use annoying zero-based index counting. The first number is inclusively the start. The second number is exclusively the end. So getting elements 1, 2, and 3 but not 4 and more translates as ( 0 , 3 )
. I might be tempted to write this as ( 1 - 1 , 4 - 1 )
meaning “ordinal one inclusive to four exclusive, subtracting one for index counting”.
List< String > firstThreeStrings = allStrings.subList( 0 , 3 ) ; // Using annoying zero-based index counting. First number is inclusive while the second is exclusive.
Be aware that any changes to the original List
will show through to the sub-list. We have not created a copy, we have a created second view onto the first list’s content, hiding unwanted elements.
Problem :
I have got a String array:
String[] s={“one”,”two”,”three”,”four”};
Now I want to inspect from first three items of that array and do not want the inspection to include the fourth item.
I am using the following code to inspect:
boolean b = Arrays.asList(s).contains(“two”);
Wondering if there is a solution for this!
Comments
Comment posted by Deepesh Paul
I am not trying to create new array. Anyways thanks for the quick reply.