Trim multibyte blank space

String.trim() removes single byte white spaces, but not multibyte white spaces.
If a string contains Japanese characters and has leading or trailing white spaces, String.trim() does not remove the leading & trailing multibyte white spaces.
Is there any way to achieve this.
Regards
Aswin Asokan

subclass the string class and override the trim() method to do the things you want to do.
or maybe call trim() twice :)
Tom

Similar Messages

  • Automatic trimming of blank spaces

    Hello,
    I noticed that Oracle Forms will remove all blank spaces from a text field automatically (if the text field contains only blank spaces).
    Is this controlled by a specific setting ?
    Thanks

    Hello,
    No,i do not need those spaces.
    But i was asking if this can be changed or not.

  • File Content Conversion Removes Leading Blank/Space

    I'm having a problem where file content conversion is trimming leading blanks/space/whitespace from fields when reading in the inbound file.  I've seen where people have posted that you need to use fieldContentFormatting to prevent content conversion from stripping the leading/trailing whitespace.  I added that parameter to my list (see below example) but it still appears to be trimming the leading whitespace.  Look forward to hearing your thoughts.  Here are the details:
    I'm using fixed length file content conversion for Sender File Adapter (SP15).  I have the following parameters set:
    Document Name = MaterialData
    Recordset name = item
    Recordset Structure = MaterialLine, 1
    I have:
    MaterialLine.fieldNames = matno_external, mat_description
    MaterialLine.fieldFixedLengths = 40, 40
    MaterialLine.fieldContentFormatting = nothing, nothing
    The following is the input file (notice spaces prior to second occurrence of material numbers)
    ZED00000001                             AIMS LIGHT A
    ZED00000001                            AIMS LIGHT B
    ZED00000002                             AIMS SWITCH A
    ZED00000002                            AIMS SWITCH B
    ZED00000003                             AIMS SEMICONDUCTOR A
    ZED00000003                            AIMS SEMICONDUCTOR B
    The following is the source XML after file content conversion from SXMB_MONI (note spaces no longer exist in matno_external tag).
    <?xml version="1.0" encoding="utf-8" ?>
    - <ns:MaterialData xmlns:ns="http://xxxxxxx.com/yyy/test">
    - <item>
    - <MaterialLine>
      <matno_external>ZED00000001</matno_external>
      <mat_description>AIMS LIGHT A</mat_description>
      </MaterialLine>
      </item>
    - <item>
    - <MaterialLine>
      <matno_external>ZED00000001</matno_external>
      <create_date>10/09/06</create_date>
      <mat_description>AIMS LIGHT B</mat_description>
      </MaterialLine>
      </item>
    - <item>
    - <MaterialLine>
      <matno_external>ZED00000002</matno_external>
      <mat_description>AIMS SWITCH A</mat_description>
      </MaterialLine>
      </item>
    - <item>
    - <MaterialLine>
      <matno_external>ZED00000002</matno_external>
      <mat_description>AIMS SWITCH B</mat_description>
      </MaterialLine>
      </item>
    - <item>
    - <MaterialLine>
      <matno_external>ZED00000003</matno_external>
      <mat_description>AIMS SEMICONDUCTOR A</mat_description>
      </MaterialLine>
      </item>
    - <item>
    - <MaterialLine>
      <matno_external>ZED00000003</matno_external>
      <mat_description>AIMS SEMICONDUCTOR B</mat_description>
      </MaterialLine>
      </item>
      </ns:MaterialData>

    Thanks all for your attempts but I figured it out and wasn't this the biggest case of irony.
    Here I was trying to prevent leading spaces from being trimmed in the loading of my file and my problem was that when I typed:
    MaterialLine.fieldContentFormatting
    I actually left a "blank" at the end of the "g" in Formatting.  Apparently XI didn't like that and neither gave me a runtime or compile error.  Anyway I found this and though I'd share in case anyone else encounters it.  I removed the blank and all is working now.

  • Lots of blank space when printing array with only last element printed

    I have a slight problem I have been trying to figure it out for days but can't see where my problem is, its probably staring me in the face but just can't seem to see it.
    I am trying to print out my 2 dimensional array outdie my try block. Inside the trying block I have two for loops in for the arrays. Within the second for loop I have a while to put token from Stringtokeniser into my 2 arrays. When I print my arrays in this while bit it prints fine however when I print outside the try block it only print the last element and lots of blank space before the element.
    Below is the code, hope you guys can see the problem. Thank you in advance
       import java.io.*;
       import java.net.*;
       import java.lang.*;
       import java.util.*;
       import javax.swing.*;
       public class javaflights4
          public static final String MESSAGE_SEPERATOR  = "#";
          public static final String MESSAGE_SEPERATOR1  = "*";
          public static void main(String[] args) throws IOException
             String data = null;
             File file;
             BufferedReader reader = null;
             file = new File("datafile.txt");
             String flights[] [];
                   //String flightdata[];
             flights = new String[21][7];
             int x = 0;
                   //flightdata = new String[7];
             int y = 0;
             try
                reader = new BufferedReader(new FileReader(file));   
                //data = reader.readLine();   
                while((data = reader.readLine())!= null)   
                   data.trim();
                   StringTokenizer tokenised = new StringTokenizer(data, MESSAGE_SEPERATOR1);
                   for(x = 0; x<=flights.length; x++)
                      for(y = 0; y<=flights.length; y++)
                         while(tokenised.hasMoreTokens())
                            //System.out.println(tokenised.nextToken());
                            flights [x] [y] = tokenised.nextToken();
                            //System.out.print("*"+ flights [x] [y]+"&");
                   System.out.println();
                catch(ArrayIndexOutOfBoundsException e1)
                   System.out.println("error at " + e1);
                catch(Exception e)
                finally
                   try
                      reader.close();
                      catch(Exception e)
             int i = 0;
             int j = 0;
             System.out.print(flights [j]);
    //System.out.println();

    A number of problems.
    First, I bet you see a lot of "error at" messages, don't you? You create a 21x7 array, then go through the first array up to 21, going through the second one all the way to 21 as well.
    your second for loop should go to flights[x].length, not flights.length. That will eliminate the need for ArrayIndexOutOfBounds checking, which should have been an indication that you were doing something wrong.
    Second, when you get to flights[0][0] (the very first iteration of the inner loop) you are taking every element from the StringTokenizer and setting flights[0][0] to each, thereby overwriting the previous one. There will be nothing in the StringTokenizer left for any of the other (21x7)-1=146 array elements. At the end of all the loops, the very first element in the array (flights[0][0]) should contain the last token in the file.
    At the end, you only print the first element (i=0, j=0, println(flight[ i][j])) which explains why you see the last element from the file.
    I'm assuming you have a file with 21 lines, each of which has 7 items on the line. Here is some pseudo-code to help you out:
    count the lines
    reset the file
    create a 2d array with the first dimension set to the number of lines.
    int i = 0;
    while (read a line) {
      Tokenize the line;
      count the tokens;
      create an array whose size is the number of tokens;
      stuff the tokens into the array;
      set flights[i++] to this array;
    }

  • Carriage returns are replaced by blank space in SOAP message.

    Hi,
    i am using SOAP request based website. i am using the weblogic webservices. when we sent any SOAP request to the server, if the SOAP xml message contains any carriage returns(new lines) are replaced by a single balnk space.
    i have a requirement where user can enter details in multiple lines. but by the time when it readched server, the SOAP xml message has changed. all the carriage returns are repalced by a blank space.
    Can you please help how to solve this issue.
    Thanks
    subba.

    What are your trying to accomplish?
    I'm thinking you are trying to get a several 'fields' together as a single 'string'. In which case I'd simply concat the fields together like
    SELECT a, b||' '||c ...
    to create a single string with "contents of b space contents of c"
    If you are trying to get one hundred and one blanks, of make a field 101 characters wide with blank padding, then you want to look in the SQL Reference manual for things like lpad, rpad and trim.

  • New line break and extra blank space characters disappear after submit form?

    Hello,
    I have a PDF form with a Submit button that is dynamically created in my code to send the form data to the server in HTML format.
    After the form data is received on the server side, all strings with new line break and extra blank spaces are gone.
    For example, if I enter string in a text field as shown below on the form:
    Hello   ,  
    this is  
        just a
    test
    After the form data is sent to the server, this string would become:
    Hello , this is just a test
    New line breaks are gone. Also, if there is more than 1 blank space character between 2 characters, the extra blank space characters would be removed as well.
    It does not only happen to multi-line text field, even with single-line text field. If I have a string like this in a single-line text field:
    Hello         this is just              a         test
    After the form data is sent to the server, it would become:
    Hello this is just a test
    The form is created in OpenOffice then converted to PDF. The Submit button is created in my program using iText.  I have no idea it is iText that trims my string or PDF itself does it.
    Can anyone give me any possible explanation? Thanks.

    That is not what I get. Since it's URL-encoded, spaces are represented by the "+" character and carriage returns are represented by the "%0d%0a" (cr/lf) sequence.
    Are you looking at the actual data that getting sent to the server or the output from the server after it processes it?

  • Simple??? Want "INSERT" function to return blank space after a field, how?

    All,
    Am I just having a brain fart? I have a situation where I have a field that needs to return just one space, or a value that has a space before and after it.
    Example:
    In the text ==> I am<field>going to the office. <-- notice no space between am, <field> and going
    I want it to say if FALSE, then "I am *not* going to the office."
    If true, then "I am going to the office."
    If true, I'm simply RETURN(""); <-- This returns a blank space
    If FALSE, I have tried:
    ret="not"
    RETURN(" " & ret & " ");
    This returns "I am notgoing to the office". <-- Notice no blank space after "not"?
    I've tried
    ret="not";
    ret2=(" " & ret);
    RETURN(Insert(ret2, 3, " "));
    Still the same result. What's strange is, if I do a RETURN(Insert(ret2, *2*, " "));, then it returns "I am no tgoing to the office" <-- Notice the space between the "o" and the "t"?
    Ideas?

    Trailing spaces are often removed from data. In your case, the easiest thing to do will be to use what is called the "hard space" character instead of a "real" space. This is key code ALT+0160. For all intent and purposes, it looks like a space and will print as a space, but since it is not technically the space (0032) character, it will not be trimmed from your projects. Just open the quotes, turn off the NUMLOCK and hold down the ALT key and type 0160 and then release the ALT key. This will add the hard space into your string. Then if you are like me, you will have to remember to turn the NUMLOCK back on.
    " not "
    I'm not sure how this will post into this message, but the example above is using hard space characters.
    Edited by: user9976634 on Dec 5, 2012 12:52 PM

  • Text item with a blank space

    I am trying to save a blank space in a text item but everytime i do, the item is getting trimmed.
    if i put in " " then it trims to null.
    If i put in "P " then it rtrims to "P"
    What am i doing wrong?

    I dont think i have been clear on what we are trying to achieve. They will not always need a blank space but could need one if they choose to do so.
    The form concatenates a set of values. So we have a set of information that is exported by the form.
    i.e.
    ONE
    TWO
    THREE
    FOUR.
    on button press turns into ONETWOTHREEFOUR
    they then have a custom seperator text item to specify what seperator is used to seperate the values. So this is where i want the user to be able to specify anything they want, including a blank space or anything else they require like comma etc so if they entered ", "
    on button press turns into ONE, TWO, THREE, FOUR
    at present it trims it turning it into ONE,TWO,THREE,FOUR
    Hope this makes sense as to why i want the blank space.
    I can add it as a list item and concatenate it on save but this this is a little OTT for what is a simple task

  • Message Mapping using Left justified, right blank/space filled

    Hi,
    My Interface is outbound Interface.
    Suppose source field named 'Filename' is mapped with Target field named 'Filename'.Condition is AS IS(Left justified, right blank/space filled).
    How should i do this mapping?

    Hi Sanghamitra Duttagupta,
                                                you can try this UDF below
    public static String fieldJustified(String s)
              try
                   final int fieldLength=20;
                   char filler=' ';
                   s=s.trim();
                   int l=s.length();
                   while(l<fieldLength)
                        s=s+filler;
                        l++;
              catch(Exception e)
                   return s;
              return s;
    Please reset the value of the variable "fieldLength",  in code above to the field length as per your need. The right side will be filled with extra spaces since value of "filler" variable is ' '. you can set this to any character of your choice so that total field length is equal to value of variable "fieldLength" (which is 20 here).
    so if input is  "        hi"
    output           "hi                  "
    regards
    Anupam
    Edited by: anupamsap on Aug 1, 2011 1:53 PM

  • Viewing/Identifying blank spaces in SQL*plus

    How can i identify blank spaces in Sql*plus? How will i know if the result of the following query has the blank spaces on the right trimmed?
    SQL> select rtrim('sxxx  ') from dual;
    RTRI
    sxxxMessage was edited by:
    J.Kiechle

    Why? This seems a pretty strange requirement for me.
    Are you sure that you have a problem with blank padded characters?
    select 1, '|'||rtrim('sxxx  ')||'|' from dual
    UNION
    select 2, '|'||'sxxx  '||'|' from dual;
    Row#     1     '|'||RTRIM('SXXX')||'|'
    1     1     |sxxx|
    2     2     |sxxx  |

  • How can I remove blank space after month value while selecting to_char(sysdate)

    select to_char(sysdate,'dd-month-yyyy') from dual;
    when I give this query, I'm getting a blank space after the month value. How can I trim that?

    Or else try this one
    select to_char(sysdate,'dd-fmmonth-yyyy') from dual;
    Best of luck.

  • Blank Spaces not coming in the end

    All,
    We have a report where we need to show some blank spaces in the end of report o/p. Let's say 10 Blank Spaces.
    But in o/p Spaces are being trimmed. If we place some charcater in the end then it shows 10 spaces before the character, but if we remove the chracter then it removes the blank space also.
    We need to send the report o/p to some feeder system where these 10 bkank spaces are mandatory.
    Please suggest how to achieve this.
    Regards
    Sachin

    Hello,
    The way report is hiding the blank spaces from the last its normal report bahavior and as you said if you put some character then it shows. yeah, it will show then. Instead of placing some character place one simple line in the last with white color. So, it will create the spaces in report and user will not feel any difference/change.
    -Ammad

  • XML Publisher Printing Blank spaces for no data

    hi All,
    We are trying to build a report using XML Publisher and .RTF template.
    We have dynamic fields like Wt Uom, Volume Uom, Dimensions.So when we don’t have data in these fields XML Publisher consider these data as blank and so blank spaces comes. If we have data in these fields then blank spaces will not come, as the blank spaces will be filled up the data of Wt, Volume and Dimension fields.
    We want to remove the blank spaces for the items that do not have any corresponding data for the fields. Is there any way we can remove the field header and the blank spaces that are there?
    Please help
    thanks,
    Chandan

    Hi Chandan
    The element is present in the XML data, but it has one space
    <?if:element_name and element_name=' ' ?> desired behavior when
    the element exists but value has one space <?end if?>
    Or
    what you can do is trim the data before forming XML .

  • How to validate blank space ?

    Hi All
    I have a textfield i am showing alert if textfield is empty by using isNull and undefined way but how check if user give empty space ?
    Thanks in advance !!!
    Regards,
    Ganesh

    This is how to remove all blank spaces in a string:
    Create a function in an object script, e.g.:
    Script Object Name: myObject
    Method Name : function trim(string)
    function trim(str){
         return str.replace(/^\s+|\s+$/g, '');
    //this function above return the string by replacing blank space by nothing (empty string or null string)
    //it only replace if the field is empty, if there is no chars inside
    //Show the output value after calling the method
    TextField21.rawValue = myObject.trim(TextField21.rawValue);
    //Here is a lil proto to see if it works
    if (TextField21.rawValue == null){
              xfa.host.messageBox("Null");
    } else{
              xfa.host.messageBox("Blank");

  • Fill with blanks(spaces) a VARCHAR2 type

    Thanks in advance,
    I have a VARCHAR2 type rtesta's var of length x(100 char)
    how i can fill(write) it without create a other varchar2 var that it'll be only filled with blanks(spaces). e.g
    rtesta := ' PC'||fil1||'xxx||fill2....
    where fil1 = say 10 spaces.. fill2 = 63 spaces and so on
    I would like something as
    rtesta := ' PC'|| RPAD(null,10)||'xxx||RPAD(null,63) ...
    but.... Oracle treats an empty string as null. And nulls are always a bit special within Oracle. Particularly, rpad('', n) and lpad('', n) returns null.
    Exists a built in for my problem?
    Thanks

    alter table your_table modify(your_column char(100));
    update your_table set your_column = ' '
      where your_clumn is null;  /* (added) But,this is no good for performance */
    alter table your_table modify(your_column varchar2(100));Exapmples.
    SQL> set null (null)
    SQL> create table test (vc varchar2(100));
    Table created.
    SQL> insert into test values ('');
    1 row created.
    SQL> insert into test values ('a');
    1 row created.
    SQL> insert into test values ('abcde');
    1 row created.
    SQL> select substr(vc,1,10) vc,length(vc) len from test;
    VC                          LEN
    (null)               (null)
    a                             1
    abcde                         5
    SQL> alter table test modify(vc char(100));
    Table altered.
    SQL> update test set vc = ' ' where vc is null;
    1 row updated.
    SQL> alter table test modify(vc varchar2(100));
    Table altered.
    SQL> select substr(vc,1,10) vc,length(vc) len from test;
    VC                          LEN
                                100
    a                           100
    abcde                       100----
    I misread OP's problem, sorry.
    Message was edited by:
    ushitaki

Maybe you are looking for