How to get the last characters in a String in Java, regardless of String size
I'm looking for a way to pull the last characters from a String, regardless of size. Lets take these strings into example:
"abcd: efg: 1006746"
"bhddy: nshhf36: 1006754"
"hfquv: nd: 5894254"
As you can see, completely random strings, but they have 7 numbers at the end. How would I be able to take those 7 numbers?
Edit:
I just realized that String[] string = s.split(": ");
would work great here, as long as I call string[2] for the numbers and string[1] for anything in the middle.
How about:
String numbers = text.substring(text.length() - 7);
That assumes that there are 7 characters at the end, of course. It will throw an exception if you pass it "12345". You could address that this way:
String numbers = text.substring(Math.max(0, text.length() - 7));
or
String numbers = text.length() <= 7 ? text : text.substring(text.length() - 7);
Note that this still isn't doing any validation that the resulting string contains numbers - and it will still throw an exception if text
is null.
Lots of things you could do.
s.substring(s.lastIndexOf(':') + 1);
will get everything after the last colon.
s.substring(s.lastIndexOf(' ') + 1);
everything after the last space.
String numbers[] = s.split("[^0-9]+");
splits off all sequences of digits; the last element of the numbers array is probably what you want.