# Programming-Idioms

This language bar is your friend. Select your favorite languages!

# Idiom #168 Trim suffix

Create string t consisting of string s with its suffix w removed (if s ends with w).

``t = s.delete_suffix(w)``
``t = s.sub(/#{w}\z/, "")``
``using System;``
``string t = s.TrimEnd(w);``
``import std.string;``
``string t = s.chomp(w);``
``````  i = index(s,w,back=.true.) - 1
if (i == len(s) - len(w) ) then
allocate (t, source=s(:i))
else
allocate (t, source=s)
end if``````
``import "strings"``
``t := strings.TrimSuffix(s, w)``
``import Data.List (isSuffixOf)``
``````t :: String
t = if w `isSuffixOf` s then take (length s - length w) else s``````
``const t = s.endsWith(w) ? s.slice(0, -w.length) : s``
``````String t = s;
int index = s.lastIndexOf(w);
if (index + w.length() == s.length()) {
t = s.substring(0, index);
}``````
``local t = s:gsub(w.."\$", "")``
``preg_replace("/{\$w}\$/u", '', \$s);``
``uses StrUtils;``
``````if AnsiEndsStr(w, s) then
t := copy(s, 1, length(s) - length(w))
else
t :=s;``````
``````if (length \$s == rindex(\$s, \$w) + length \$w) {
my \$t = substr \$s, 0, rindex \$s, \$w;
}``````
``t = s.removesuffix(w)``
``let t = s.trim_end_matches(w);``
``let t = s.strip_suffix(w).unwrap_or(s);``

programming-idioms.org