How to do substring in some elements of string list using lambda

java stream split string
java 8 split string to list
java 8 list contains string
string contains in java 8
string> stream java
java check if string contains substring from list
string lambda java
string to map java 8

Below is my list of String.

["sunday", "monday", "tuesday", "wednesday", "fri", "satur"]

I want to do remove "day" from the elements if it is ending with "day". How to do this in Lambda ?

Expected Output in the list:

["sun", "mon", "tues", "wednes", "fri", "satur"]

I have tried the below code, but unable to assign the value to the list

daysList.stream().forEach(s -> { if(s.endsWith("day")) {
        s = s.substring(0, s.indexOf("day"));
    }});

Can anyone please help me on this ?

Most of the answers here make use of a Stream, but you should not be using a Stream at all:

daysList.replaceAll(s -> s.replaceFirst("day$", ""));

Check if a string contains an element from a list of strings, Check if a string contains an element from a list of strings String string = "A box of Oranges"; Declarative Style using lambda expression Similarly we can use other java.lang.String This site displays some advertisements per page, that's how we earn some revenue to create and maintain the quality  Check if a string contains an element from a list of strings [Updated: Mar 6, 2016, Created: Mar 6, 2016] Declarative Style using lambda expression. List<String

Iterating over the stream using forEach won't work; you need to map each of the elements you modified to a new stream using map. Then you can collect the results back to your list.

daysList = daysList.stream()
        .map(s -> s.endsWith("day") ? s.substring(0, s.length()-3) : s)
        .collect(Collectors.toList());

Python, Let's discuss certain ways to find strings with given substring in list. This function can also perform this task of finding the strings with the help of lambda. empty strings from list of strings · Python | Finding relative order of elements in list​  Method #2 : Using filter() + lambda + len() This function can also perform this task of finding the strings with the help of lambda. It just filters out all the strings matching the particular substring and then adds it in a new list. The len() is used to compute length of list.

List<String> daysList = Arrays.asList("sunday", "monday", 
                                      "tuesday", "wednesday",
                                       "fri", "satur" 
                                      );


List<String> res = daysList.stream()
                            .map(s -> s.replace("day",""))
                            .collect(Collectors.toList());

How could I use Java 8 lambda function to take the first letter of a list , The following code prints the first letter of each string in a list of strings - using Java 8's lambdas. In the above code the Stream 's map method uses a function (a lambda expression); the code s -> s.substring(0, 1) . What are some Java programming mistakes when using lambdas? What are Java 8's new features? Method #2 : Using map() + lambda + replace() The combination of these functions can also be used to perform this particular task. The map and lambda help to perform the task same as list comprehension and replace method is used to perform the remove functionality. But this method is poor when it comes to performance than method above.

Sub String with decimal points sorting .

String arr[]= {"2.4","4.2","3.1","5.7","3.0","2.01","7.06","6.003"};

List newList =Arrays.asList(arr); newList.stream().map(n -> n.substring(n.indexOf('.')) ).collect(Collectors.toList()).stream().sorted().forEach(n -> System.out.println(n));;

String Operations with Java and Stream API, Learn how to split a comma-separated String into a list of Strings and how to we need to iterate some Java Collections and filter the Collection based on some filtering logic. With the Stream API we can do that in the following way: Here, “:” is the key-value separator for all the elements in String array. Method #2 : Using filter() + lambda This function can also perform this task of finding the strings with the help of lambda. It just filters out all the strings matching the particular substring and then adds it in a new list.

Manipulating a string array using a Lambda Expression, I am using the Substring method inside a lambda expression to achieve this. //​input string which contain null element string input1 = "Bharti, Mangesh,Akash,, Here the output enumerable can be converted to char array using ToArray . It is easy to do it using loops, however I tried to get the best benefits of lambda expressions which will help write minimal number of lines to achieve this. Using the code In this case, I have an input array string and I want to crop everything except the first character from each array element.

Java Stream filter() example, Learn to use Java Stream filter(Predicate condition) method to traverse all the elements and filter out all elements which do not match a given predicate. import java.util.List;. public class Main. {. public static void main(String[] args) This example uses Predicate class in place of lambda expression, though both are same  Here the replacement of a substring in list of string is performed. Let’s discuss certain ways in which this can be performed. Method #1 : Using list comprehension + replace() The replace method can be coupled with the list comprehension technique to achieve this particular task.

Start Using Java Lambda Expressions, A lambda expression is like a method, it provides a list of formal parameters and IntelliJ IDEA support Java 8 features, such as lambda expressions, Now that we have an idea of what lambdas are, let us start with some basic examples. public int compare(String s1, String s2) { return (s1.substring(s1. Sometimes if you have a set of records in a List, it becomes quite easy to query on a list using a Lamda Expression. This article exemplifies methods for performing several tasks and queries over a list. A sample code is also attached with this article to explain the use of Lambda Expressions.

Comments
  • How about replacing day at the end with nothing, i.e. apply String#replaceAll("day$", "") to all elements. Just an idea how to get rid of the condition. If you can't write the changed elements back to the list (I don't know that API that well yet but "forEach" indicates it is not possible) you could collect them into a new list.
  • why don't you simply iterate over the list with a for loop?
  • @Thanigaiarasu I have done the same thing, you can see that in question. my question is after this operation my list should have elements without "day"
  • @wero Because he wants to know how to do this using a lambda?
  • great answer. Thanks
  • Funny, my solution looked like yours :D. So I don't need to post it.
  • I think your s.substring(0, s.indexOf("day")) would be better written as s.substring(0, s.length()-3); that way you don't run the risk of hitting an earlier occurrence of "day" in the string.
  • @khelwood Or better yet lastIndexOf. But thanks for the heads up.
  • @TNT better yet why? you're just performing an extra search that you already know the result of.
  • @khelwood You have a point. I was thinking more in terms of readability as if it would be easier to note that the range of the substring ends at the index of the last occurrence of "day". But like you said, that's already known, and that seems like a better solution as well.