You can use String#split:

String s = "14.015_AUDI";
String[] parts = s.split("_"); //returns an array with the 2 parts
String firstPart = parts[0]; //14.015

You should add error checking (that the size of the array is as expected for example)

Answer from assylias on Stack Overflow
๐ŸŒ
AlgoCademy
algocademy.com โ€บ link
String Slicing in Java | AlgoCademy
This is particularly useful in scenarios where you need to manipulate or analyze specific parts of a string, such as parsing data, formatting output, or handling user input. The substring() method in Java is used to slice a string. It takes two parameters: startIndex and endIndex.
Discussions

Is there a Java equivalent to Python's Easy String Splicing? - Stack Overflow
How string_sample[3] is i in your python example?.. ... I don't actually know for sure, but I suspect many Java programmers would fine left, mid, and right functions more Javidiotic (what is the Java equivalent of Pythonic again?) than negative-index-based slicing functions. ... Save this answer. ... Show activity on this post. Sorry, Java's substring is not as flexible as Python's slice ... More on stackoverflow.com
๐ŸŒ stackoverflow.com
Java string slice
please i have been try to slice a string on java but the statement are not correct can anyone tell me where i have made a mistake. var name = "caleb"; var cut More on sololearn.com
๐ŸŒ sololearn.com
7
1
March 4, 2024
String Slice Help
what have you tried so far? depending on your needs, you might be better off using a regular expression to extract the text you're looking for. slice leverages an index to know where to split a string/array, so you're going to have to programmatically determine the starting index. regex gives you much more flexibility because you can look for matches that come before xyz but after abc. More on reddit.com
๐ŸŒ r/learnjavascript
6
2
April 6, 2023
How to slice a string based on the Nth occurrence of a certain character
You want String.split(). public static void main(String[] args) { String s = "test1.test2.test3.test4"; // First parameter is the delimiter, second parameter is the size of the array that you want returned. String splitString = s.split("\\." , 2); //The last string in this array will be the one that you want. String myString = splitString[splitString.length-1]; System.out.println(myString); } The output is: test2.test3.test4 In your case, if you want everything AFTER the n th period, then the size of your array would need to be 1 higher than n. So if you wanted everything after the 2nd period, you would use: s.split("\\." , 3); Again, you would still want the last String in the array, since the array that's returned would be: ["test1" , "test2" , "test3.test4"] More on reddit.com
๐ŸŒ r/learnjava
4
2
September 27, 2016
๐ŸŒ
Coding Champ
coding-champ.com โ€บ tutorials โ€บ java โ€บ string-slicing
Java - String Slicing
String slicing allows you to extract a portion of a string. Slicing of a string can be done via specifying starting index and optionally length.
๐ŸŒ
Baeldung
baeldung.com โ€บ home โ€บ java โ€บ java string โ€บ java equivalent to pythonโ€™s easy string slicing
Java Equivalent to Pythonโ€™s Easy String Slicing | Baeldung
March 25, 2025 - However, StringBuilder is more efficient because string concatenation inside a loop creates multiple immutable string objects, leading to performance overhead. Python allows slicing with a negative step, which extracts elements in reverse order within a specified range. This is useful for selecting characters in reverse or skipping elements while moving backward. ... Java does not have built-in support for negative step slicing, so weโ€™ll manually iterate in the required order:
๐ŸŒ
W3Schools
w3schools.com โ€บ java โ€บ ref_string_substring.asp
Java String substring() Method
Java Examples Java Videos Java Compiler Java Exercises Java Quiz Java Code Challenges Java Practice Problems Java Server Java Syllabus Java Study Plan Java Interview Q&A ... The substring() method returns a substring from the string.
๐ŸŒ
Java Code Geeks
javacodegeeks.com โ€บ home โ€บ core java
Java String Slicing Example - Java Code Geeks
March 21, 2025 - Java string slicing: Learn how to slice strings in Java using substrings, similar to Pythonโ€™s easy string slicing methods.
Top answer
1 of 8
25

Sorry, Java's substring is not as flexible as Python's slice notation.

In particular:

  • You can give it just a begin, or a begin and end, but not just an end. (Also, no step, but you don't miss that as much.)
  • Negative indices are an error, not a count from the end.

You can see the docs here.

However, it's not hard at all to write this on your own:

public String slice_start(String s, int startIndex) {
    if (startIndex < 0) startIndex = s.length() + startIndex;
    return s.substring(startIndex);
}

public String slice_end(String s, int endIndex) {
    if (endIndex < 0) endIndex = s.length() + endIndex;
    return s.substring(0, endIndex);
}

public String slice_range(String s, int startIndex, int endIndex) {
    if (startIndex < 0) startIndex = s.length() + startIndex;
    if (endIndex < 0) endIndex = s.length() + endIndex;
    return s.substring(startIndex, endIndex);
}

Put those as static methods of some utility class.

Obviously this isn't exactly the same as Python, but it probably handles all the cases you want, and very simple. If you want to handle other edge cases (including things like step and passing slices around and so on), you can add whatever additional code you want; none of it is particularly tricky.


Other sequences are basically the same, but there you're going to want subSequence instead of substring. (You can also use subSequence on strings, because a String is a CharSequence.)

Arrays aren't actually a type of sequence at all; you'll need to write code that explicitly creates a new Array and copies the sub-array. But it's still not much more complicated.


Note that you may want to look for a library that's already done this for you. There are at least three linked in other answers on this page, which should make your search easy. :) (You may still want to do it for yourself once, just to understand how those libraries workโ€”but for production code, I'd rather use a library where someone else has figured out and tested all of the edge cases than to reimplement the wheel and deal with them as they get caught in unit tests, or errors in the fieldโ€ฆ)

2 of 8
11

Java Boon Slice Notation allows all of that and with Strings, Lists, Sets, Maps, etc.

Many languages have slice notation (Ruby, Groovy and Python). Boon adds this to Java.

Boon has three slc operators: slc, slc (start only), and slcEnd.

With Boon you can slice strings, arrays (primitive and generic), lists, sets, tree sets, tree map's and more.

Slice notations - a gentle introduction

The boon slice operators works like Python/Ruby slice notation:

Ruby slice notation

 arr = [1, 2, 3, 4, 5, 6]
 arr[2]    #=> 3
 arr[-3]   #=> 4
 arr[2, 3] #=> [3, 4, 5]
 arr[1..4] #=> [2, 3, 4, 5]

Python slice notation

string = "foo bar" 
string [0:3]  #'foo'
string [-3:7] #'bar'

What follows is derived from an excellent write up on Python's slice notation:

The basics of slice notations are as follows:

Python Slice Notation

     a[ index ]       # index of item
     a[ start : end ] # items start through end-1
     a[ start : ]     # items start through the rest of the array
     a[ : end ]       # items from the beginning through end-1
     a[ : ]           # a copy of the whole array

Java Slice Notation using Boon:

      idx( index )         // index of item
      slc( a, start, end ) // items start through end-1
      slc( a, start )      // items start through the rest of the array
      slcEnd( a, end )     // items from the beginning through end-1
      copy( a )            // a copy of the whole array

slc stands for slice idx stands for index slcEnd stands for end slice. copy stands for well, err, um copy of course

The key point to remember is that the end value represents the first value that is not in the selected slice. So, the difference between end and start is the number of elements selected. The other feature is that start or end may be a negative number, which means it counts from the end of the array instead of the beginning.

Thus:

Python slice notation with negative index

         a[ -1 ]    # last item in the array
         a[ -2: ]   # last two items in the array
         a[ :-2 ]   # everything except the last two items

Java negative index

         idx   ( a, -1)     // last item in the array
         slc   ( -2 )       // last two items in the array
         slcEnd( -2 )       // everything except the last two items

Python and Boon are kind to the programmer if there are fewer items than you ask for: Python does not allow you to go out of bounds, if you do it returns at worse an empty list. Boon follows this tradition, but provides an option to get exception for out of bounds (described later). In Python and Boon, if you go to far, you get the length, if you try to go under 0 you get 0 (under 0 after calculation). Conversely, Ruby gives you a null pointer (Nil). Boon copies Python style as one of the goals of Boon is to avoid ever returning null (you get an exception, Option). (Boon has second operator called zlc which throws an out of bounds index exception, but most people should use slc.)

For example, if you ask for slcEnd(a, -2) (a[:-2]) and a only contains one element, you get an empty list instead of an error. Sometimes you would prefer the error, and with Boon you have that option.

More slicing

Here are some basic Java types, list, array, veggies, primitive char array, and a primitive byte array.

Declare variables to work with in Boon

//Boon works with lists, arrays, sets, maps, sorted maps, etc.
List<String> fruitList;
String [] fruitArray;
Set<String> veggiesSet;
char [] letters;
byte [] bytes;
NavigableMap <Integer, String> favoritesMap;
Map<String, Integer> map;

//In Java a TreeMap is a SortedMap and a NavigableMap by the way.

Boon comes with helper methods that allow you to easily create lists, sets, maps, concurrent maps, sorted maps, sorted sets, etc. The helper methods are safeList, list, set, sortedSet, safeSet, safeSortedSet, etc. The idea is to make Java feel more like list and maps are built in types.

Initialize set, list, array of strings, array of chars, and array of bytes

veggiesSet  =  set( "salad", "broccoli", "spinach");
fruitList   =  list( "apple", "oranges", "pineapple");
fruitArray  =  array( "apple", "oranges", "pineapple");
letters     =  array( 'a', 'b', 'c');
bytes       =  array( new byte[]{0x1, 0x2, 0x3, 0x4});

There are even methods to create maps and sorted maps called map, sortedMap, safeMap (concurrent) and sortedSafeMap(concurrent). These were mainly created because Java does not have literals for lists, maps, etc.

Java: Use map operator to generate a SortedMap and a Map

 favoritesMap = sortedMap(
      2, "pineapple",
      1, "oranges",
      3, "apple"
 );


 map =    map (
    "pineapple",  2,
    "oranges",    1,
    "apple",      3
 );

You can index maps, lists, arrays, etc. using the idx operator.

Java: Using the Boon Java idx operator to get the values at an index

 //Using idx to access a value.

 assert idx( veggiesSet, "b").equals("broccoli");

 assert idx( fruitList, 1 ).equals("oranges");

 assert idx( fruitArray, 1 ).equals("oranges");

 assert idx( letters, 1 ) == 'b';

 assert idx( bytes, 1 )      == 0x2;

 assert idx( favoritesMap, 2 ).equals("pineapple");

 assert idx( map, "pineapple" )  == 2;

The idx operators works with negative indexes as well.

Java: Using idx operator with negative values

         //Negative indexes

          assert idx( fruitList, -2 ).equals("oranges");

          assert idx( fruitArray, -2 ).equals("oranges");

          assert idx( letters, -2 ) == 'b';

          assert idx( bytes, -3 )   == 0x2;

Ruby, Groovy and Python have this feature. Now you can use this in Java as well! The Java version (Boon) works with primitive arrays so you get no auto-boxing.

Something that Ruby and Python don't have is slice notation for SortedSets and SortedMaps. You can use slice notation to search sorted maps and sorted sets in Java

Slice notations works with sorted maps and sorted sets.

Here is an example that puts a few concepts together.

          set = sortedSet("apple", "kiwi", "oranges", "pears", "pineapple")

          slcEnd( set, "o" )      //returns ("oranges", "pears", "pineapple")
          slc( set, "ap", "o" )   //returns ("apple", "kiwi"),
          slc( set, "o" )         //returns ("apple", "kiwi")

You are really doing with slicing of sorted maps and sorted sets is a between query of sorts. What item comes after "pi"?

          after(set, "pi") //pineapple

And before pineapple?

          before(set, "pi")

Ok, let go through it step by step....

  NavigableSet<String> set =
          sortedSet("apple", "kiwi", "oranges", "pears", "pineapple");

  assertEquals(

          "oranges", idx(set, "ora")

  );

Remember: TreeSet implements NavigableSet and SortedSet.

This was derived from my blog....

http://rick-hightower.blogspot.com/2013/10/java-slice-notation-to-split-up-strings.html

More examples are there.

I derived some of the verbiage from this discussion on Python slicing.

Explain Python's slice notation

Here is the Boon project link:

https://github.com/RichardHightower/boon

Now let's continue to SLICE!

We can look up the first fruit in the set that starts with 'o' using:

idx(set, "o")

Here is is with the set of fruit we created earlier (set is a TreeSet with "apple", "kiwi", "oranges", "pears", "pineapple" in it).

      assertEquals(

          "oranges", idx(set, "o")

      );

We found oranges!

Here it is again but this time we are searching for fruits that start with "p", i.e., idx(set, "p").

      assertEquals(
          "pears",
          idx(set, "p")
      );

Yeah! We found pears!

How about fruits that start with a "pi" like "pineapple" - idx(set, "pi")

  assertEquals(
          "pineapple",
          idx(set, "pi")
  );

You could also ask for the item that is after another item. What is after "pi"? after(set, "pi")

  assertEquals(

          "pineapple",
          after(set, "pi")

  );

The "pineapple" is after the item "pi". after and idx are the same by the way. So why did I add an after? So I can have a before!!! :) What if you want to know what is before "pi"?

before(set, "pi")

 
Find elsewhere
๐ŸŒ
Reddit
reddit.com โ€บ r/learnjavascript โ€บ string slice help
r/learnjavascript on Reddit: String Slice Help
April 6, 2023 -

I have the following string and need to only get the first part up to the second additional comments. So after it's spliced it will look like but minus the quotes
"Good morning!

Right here is the part"

2023-04-05 08:06:21 - This Is Me (Additional comments)

Good morning!

Right here is the part

2023-03-31 12:50:19 - Not Me (Additional comments)

When is the meeting TBD

2023-03-29 12:09:37 - Jon Doe (Additional comments)

awaiting availability

๐ŸŒ
Medium
medium.com โ€บ @manojsharmajtp2 โ€บ substring-in-java-unveiling-the-magic-of-string-slicing-2fdb6c419500
Substring in Java: Unveiling the Magic of String Slicing | by manoj sharma | Medium
December 17, 2023 - To extract a substring, simply tell Java Sub string where it should begin and end. Itโ€™s similar to specifying the dough and toppings for your pizza slice.
๐ŸŒ
Javatpoint
javatpoint.com โ€บ java-string-substring
Java String substring()
Java String substring() method with method signature and examples of concat, compare, touppercase, tolowercase, trim, length, equals, split, string substring in java etc.
๐ŸŒ
javaspring
javaspring.net โ€บ blog โ€บ java-slice-string
Mastering String Slicing in Java โ€” javaspring.net
When we perform string slicing, we are essentially creating new string objects that contain a portion of the original string. The most common way to slice a string is by specifying the starting and ending indices of the desired substring.
๐ŸŒ
Codecademy
codecademy.com โ€บ docs โ€บ java โ€บ strings โ€บ .substring()
Java | Strings | .substring() | Codecademy
April 28, 2025 - The .substring() method in Java returns a portion of a string from a specified starting index to an (optional) ending index.
๐ŸŒ
javaspring
javaspring.net โ€บ blog โ€บ java-string-slice
Mastering Java String Slicing โ€” javaspring.net
The start index indicates the position ... the substring. Indexing in Java strings starts from 0. The substring method is the most commonly used way to slice strings in Java....
๐ŸŒ
Tutorialspoint
tutorialspoint.com โ€บ java โ€บ java_string_substring.htm
Java - String substring() Method
The substring begins with the character at the specified index and extends to the end of this string or up to endIndex 1, if the second argument is given. ... The specified substring. import java.io.*; public class Test { public static void ...
๐ŸŒ
BeginnersBook
beginnersbook.com โ€บ 2013 โ€บ 12 โ€บ java-string-substring-method-example
Java String substring() Method with examples
We are finding the indexes of delimiters in the string using indexOf() method. Once we have the indexes of delimiters, we are calling substring method to find the substring between these delimiters. Note: The method is called like this: substring(start + 1, end), here start index is +1 because, ...