If you get into a little more than average detail concerning strings, you'll come across blanks or spaces in your string. The
CONDENSE statement can be used to clean up the string. Can more be said about blanks ? Or rather: White-space ?
CONDENSE can remove double (triple, quadruple, ..) spaces and transform them into a single space. There is also a utility class
CL_ABAP_STRING_UTILITIES that can help you remove spaces from the end of a string (method
Blanks are blanks, but they can also be referred to as "White spaces". To be platform independent, the "White space" can be a different character accross the universe of systems/platforms. Check out method
GET_SIMPLE_SPACES_FOR_CUR_CP on class
CL_ABAP_CHAR_UTILITIES: this will return a string with all possible white-space characters.
Have you tried to replace blanks with something else using the
REPLACE statement ? Or the other way around, replace the ; with a space in "I;wish;this;worked!". The
REPLACE statement will die with a
REPLACE_INFINITE_LOOP dump (replace space with something else) or simply return "Iwishthisworked". The space or blank is a special character which is best avoided with
TRANSLATE yourwords USINE ' -'. will change all spaces into a dash.
lv_tokensize = STRLEN( lv_token ). IF lv_tokensize > 0. TRANSLATE lv_token USING ' #'. lv_token = lv_token(lv_tokensize). ENDIF.
The above example also tackles the issue that a char 20 fiels has 20 spaces, even when it's empty.