Removing chars in Strings

Is there a way to remove a character in a String? I have an assignment where I made a calculator, and I'm using a switch that converts an integer into a string for storage depending on the button pushed, and then back into a double when it's called. But I'm having trouble removing the "-" for negative values. Is there any way to remove a known character or do I have to convert the string to double, remove the negative and then convert back to string to store it?

hi,
you can try it that way...
I guess the '-' appears only at the beginning =P
if( yourString.indexOf('-') != -1 ) //'-' found
  yourString = yourString.substring(1,yourString.length());Hope this helped
cu Errraddicator

Similar Messages

  • Replace char on String

    Hi All,
    String strValue = "ABC TPT 0694";
    My String is as shown above, I am looking for a way to replace char at byte 6 (position 6) with another Char in String.
    For example at location 6 it is "T" I want to replace it with char "O". can any one tell me how to do this

    String strValue = "ABC TPT 0694";
    char[] chars = strValue.toCharArray();
    chars[5] = 'O';
    strValue = String.valueOf(chars);

  • What api would I use to get the number of chars in string?

    What api would I use to get the number of chars in string?

    Assuming that you really mean that you want the number of charaters in a String (not string), that would be documented in java.lang.String
    The method is length()

  • Best way to remove apostrophe from string when loadiing

    Hi using an insert statement to load data some apostrophe's in string .
    We need to ensure all aposrophe's removed from such strings on loading/.
    What is best way to achive ethis.
    Uisng 11.2.0.3
    Thanks

    Use replace fucntion
    Please post ur DDL and DML for the table
    For examples you can see this
    how do i replace  single quotes in a string with say  ''  or null
    select replace('ab''''''''cd','''',' ') from dual;
    CREATE TABLE my_table
         istrng  varchar2(33)
    insert into my_table
    select replace('ab''''''''cd','''',' ') from dual;Please mark your questions as answered
          user5716448     
    Handle:      user5716448 
    Status Level:      Newbie
    Registered:      Mar 16, 2010
    Total Posts:      343
    Total Questions:      131 (80 unresolved)Edited by: Rahul India on Jan 29, 2013 6:04 PM

  • ASCII character/string processing and performance - char[] versus String?

    Hello everyone
    I am relative novice to Java, I have procedural C programming background.
    I am reading many very large (many GB) comma/double-quote separated ASCII CSV text files and performing various kinds of pre-processing on them, prior to loading into the database.
    I am using Java7 (the latest) and using NIO.2.
    The IO performance is fine.
    My question is regarding performance of using char[i] arrays versus Strings and StringBuilder classes using charAt() methods.
    I read a file, one line/record at a time and then I process it. The regex is not an option (too slow and can not handle all cases I need to cover).
    I noticed that accessing a single character of a given String (or StringBuilder too) class using String.charAt(i) methods is several times (5 times+?) slower than referring to a char of an array with index.
    My question: is this correct observation re charAt() versus char[i] performance difference or am I doing something wrong in case of a String class?
    What is the best way (performance) to process character strings inside Java if I need to process them one character at a time ?
    Is there another approach that I should consider?
    Many thanks in advance

    >
    Once I took that String.length() method out of the 'for loop' and used integer length local variable, as you have in your code, the performance is very close between array of char and String charAt() approaches.
    >
    You are still worrying about something that is irrevelant in the greater scheme of things.
    It doesn't matter how fast the CPU processing of the data is if it is faster than you can write the data to the sink. The process is:
    1. read data into memory
    2. manipulate that data
    3. write data to a sink (database, file, network)
    The reading and writing of the data are going to be tens of thousands of times slower than any CPU you will be using. That read/write part of the process is the limiting factor of your throughput; not the CPU manipulation of step #2.
    Step #2 can only go as fast as steps #1 and #3 permit.
    Like I said above:
    >
    The best 'file to database' performance you could hope to achieve would be loading simple, 'known to be clean', record of a file into ONE table column defined, perhaps, as VARCHAR2(1000); that is, with NO processing of the record at all to determine column boundaries.
    That performance would be the standard you would measure all others against and would typically be in the hundreds of thousands or millions of records per minute.
    What you would find is that you can perform one heck of a lot of processing on each record without slowing that 'read and load' process down at all.
    >
    Regardless of the sink (DB, file, network) when you are designing data transport services you need to identify the 'slowest' parts. Those are the 'weak links' in the data chain. Once you have identified and tuned those parts the performance of any other step merely needs to be 'slightly' better to avoid becoming a bottleneck.
    That CPU part for step #2 is only rarely, if every the problem. Don't even consider it for specialized tuning until you demonstrate that it is needed.
    Besides, if your code is properly designed and modularized you should be able to 'plug n play' different parse and transform components after the framework is complete and in the performance test stage.
    >
    The only thing that is fixed is that all input files are ASCII (not Unicode) characters in range of 'space' to '~' (decimal 32-126) or common control characters like CR,LF,etc.
    >
    Then you could use byte arrays and byte processing to determine the record boundaries even if you then use String processing for the rest of the manipulation.
    That is what my framework does. You define the character set of the file and a 'set' of allowable record delimiters as Strings in that character set. There can be multiple possible record delimiters and each one can be multi-character (e.g. you can use 'XyZ' if you want.
    The delimiter set is converted to byte arrays and the file is read using RandomAccessFile and double-buffering and a multiple mark/reset functionality. The buffers are then searched for one of the delimiter byte arrays and the location of the delimiter is saved. The resulting byte array is then saved as a 'physical record'.
    Those 'physical records' are then processed to create 'logical records'. The distinction is due to possible embedded record delimiters as you mentioned. One logical record might appear as two physical records if a field has an embedded record delimiter. That is resolved easily since each logical record in the file MUST have the same number of fields.
    So a record with an embedded delimiter will have few fields than required meaning it needs to be combined with one, or more of the following records.
    >
    My files have no metadata, some are comma delimited and some comma and double quote delimited together, to protect the embedded commas inside columns.
    >
    I didn't mean the files themselves needed to contain metadata. I just meant that YOU need to know what metadata to use. For example you need to know that there should ultimately be 10 fields for each record. The file itself may have fewer physical fields due to TRAILING NULLCOS whereby all consecutive NULL fields at the of a record do not need to be present.
    >
    The number of columns in a file is variable and each line in any one file can have a different number of columns. Ragged columns.
    There may be repeated null columns in any like ,,, or "","","" or any combination of the above.
    There may also be spaces between delimiters.
    The files may be UNIX/Linux terminated or Windows Server terminated (CR/LF or CR or LF).
    >
    All of those are basic requirements and none of them present any real issue or problem.
    >
    To make it even harder, there may be embedded LF characters inside the double quoted columns too, which need to be caught and weeded out.
    >
    That only makes it 'harder' in the sense that virtually NONE of the standard software available for processing delimited files take that into account. There have been some attempts (you can find them on the net) for using various 'escaping' techniques to escape those characters where they occur but none of them ever caught on and I have never found any in widespread use.
    The main reason for that is that the software used to create the files to begin with isn't written to ADD the escape characters but is written on the assumption that they won't be needed.
    That read/write for 'escaped' files has to be done in pairs. You need a writer that can write escapes and a matching reader to read them.
    Even the latest version of Informatica and DataStage cannot export a simple one column table that contains an embedded record delimiter and read it back properly. Those tools simply have NO functionality to let you even TRY to detect that embedded delimiters exist let alone do any about it by escaping those characters. I gave up back in the '90s trying to convince the Informatica folk to add that functionality to their tool. It would be simple to do.
    >
    Some numeric columns will also need processing to handle currency signs and numeric formats that are not valid for the database inpu.
    It does not feel like a job for RegEx (I want to be able to maintain the code and complex Regex is often 'write-only' code that a 9200bpm modem would be proud of!) and I don't think PL/SQL will be any faster or easier than Java for this sort of character based work.
    >
    Actually for 'validating' that a string of characters conforms (or not) to a particular format is an excellent application of regular expressions. Though, as you suggest, the actual parsing of a valid string to extract the data is not well-suited for RegEx. That is more appropriate for a custom format class that implements the proper business rules.
    You are correct that PL/SQL is NOT the language to use for such string parsing. However, Oracle does support Java stored procedures so that could be done in the database. I would only recommend pursuing that approach if you were already needing to perform some substantial data validation or processing the DB to begin with.
    >
    I have no control over format of the incoming files, they are coming from all sorts of legacy systems, many from IBM mainframes or AS/400 series, for example. Others from Solaris and Windows.
    >
    Not a problem. You just need to know what the format is so you can parse it properly.
    >
    Some files will be small, some many GB in size.
    >
    Not really relevant except as it relates to the need to SINK the data at some point. The larger the amount of SOURCE data the sooner you need to SINK it to make room for the rest.
    Unfortunately, the very nature of delimited data with varying record lengths and possible embedded delimiters means that you can't really chunk the file to support parallel read operations effectively.
    You need to focus on designing the proper architecture to create a modular framework of readers, writers, parsers, formatters, etc. Your concern with details about String versus Array are way premature at best.
    My framework has been doing what you are proposing and has been in use for over 20 years by three different major nternational clients. I have never had any issues with the level of detail you have asked about in this thread.
    Throughout is limited by the performance of the SOURCE and the SINK. The processing in-between has NEVER been an issu.
    A modular framework allows you to fine-tune or even replace a component at any time with just 'plug n play'. That is what Interfaces are all about. Any code you write for a parser should be based on an interface contract. That allows you to write the initial code using the simplest possible method and then later if, and ONLY if, that particular module becomes a bottlenect, replace that module with one that is more performant.
    Your intital code should ONLY use standard well-established constructs until there is a demonstrated need for something else. For your use case that means String processing, not byte arrays (except for detecting record boundaries).

  • Remove "&" charachter from string

    Hi,
    Please inform me how can i remove the & from string.
    i try this but not working.
    SELECT REGEXP_REPLACE(’raise the level of &performance, creativity',’&','') COL1 FROM DUAL;
    Also i want to remove any special character from statement.
    many thanks

    Ayham wrote:
    i try this but not working.
    SELECT REGEXP_REPLACE(’raise the level of &performance, creativity',’&','') COL1 FROM DUAL;Are you getting any error?
    SQL> set define off
    SQL> SELECT REPLACE('raise the level of &performance, creativity','&') COL1
      2  FROM DUAL;
    COL1
    raise the level of performance, creativity>
    Also i want to remove any special character from statement.
    Search the forum..
    Sample:Re: How to find Special Characters in a single query
    Edited by: jeneesh on Sep 17, 2012 12:26 PM

  • Remove char(160) and space in SSIS

    Hi everyone,
    I'm using SSIS package to import from excel source to SQL db , before do that, i want to remove all space and char(160) if any .
    But with this : REPLACE(REPLACE(APP_ID_TRANSACTION,"& chr(160)","")," ","") , i can only remove space , cant remove char(160) .
    Any ideas for this ?
    Many thanks,
    Hong

    Hi, with excel i can use this :=SUBSTITUTE((SUBSTITUTE(C2,CHAR(160),""))," ","") , to remove all of space on any field, but in SSIS, i still cant remove char(160) ..
    Pls help me..

  • Delete a char from string ?

    Hi,
    I want to delete a char from string. i used the following function.
    String f = formulla.replace('[','');
    The above function doesnt work as it tells me to put a space or some char in 2nd parameter which i dont want. i just want to delete all occurences of some specific char in a string.
    Any suggestion.
    Thanks alot.

    u can do:
    String before;
    char charToReplace;
    StringBuffer tempBuf = new StringBuffer(before);
    for (int i=0; i<tempBuf.length(); i++)
            if (tempBuf.charAt(i)==charToReplace)
                  tempBuf.deleteCharAt(i);
    String after = tempBuf .toString(); HTH
    Yonatan

  • I have to generate a 4 char unique string from a long value

    I got a requirment
    I have to generate a 4 char unique string from a long value
    Eeach char can be any of 32 character defined has below.
    private static final char char_map[] = new char[]{'7','2','6','9','5','3','4','8','X','M','G','D','A','E','B','F','C','Q','J','Y','H','U','W','V','S','K','R','L','N','P','Z','T'};
    So for 4 char string the possible combination can be 32 * 32 * 32 * 32 = 1048576
    If any one passes a long value between 0 - 1048576 , it should generate a unique 4 char string.
    Any one with idea will be a great help.

    Well, a long is 64 bits. A char is 16 bits. Once you determine how you want to map the long's bits to your char bits, go google for "java bitwise operators".

  • Converting chars to strings

    I don't know how to get this thing to work:
    public class TestGrade
    public static void main(String[] args)throws GradeException
      int studentID = 123423;
      char grade;
      String aGrade = new String();
      try
       System.out.println("Student #: " + studentID);
       System.out.println("Enter a letter grade for student: ");
       grade = (char)System.in.read();
       if(grade >= 'A' && grade <= 'F' || grade >= 'f' && grade <= 'f')
        System.out.println("Student ID#: " + studentID + "Grade: " + grade);
        aGrade = grade;
       else
        throw(new GradeException(aGrade));
      catch(GradeException error)
           System.out.println("Test Error: " + error.getMessage ());
    }

    it might help if I tell you where the error is...
       aGrade = grade; generates a rather obvious error. Incompatible types, I don't know how to convert this sucker into a string so I can feed a string into GradeException....

  • Remove the prefix string in powershell

    I am getting the users connected to Webservers count with this query
    $wf = Get-Counter -ComputerName "WebServerName" -Counter "\web service(_total)\Current Connections"
    I am getting the out put as..
    webservername\\web service(_total)\current connections : 5
    But i want to get out put only Webservername : 5
    Please help us ..
    Regards,
    Phani

    Hi,
    It seems you have got the answer in the thread which you asked in the Windows PowerShell forum as the link below.
    http://social.technet.microsoft.com/Forums/windowsserver/en-US/88a4d5e3-3591-43ac-b20f-ecc915ee004e/remove-the-prefix-string-in-powershell?forum=winserverpowershell#72b8da5c-ee85-483e-a6c4-fefcb44f78f4
    Thanks.
    Tracy Cai
    TechNet Community Support

  • Help :how to remove spaces in string

    could any body please help me in removing spaces from string suppose i have written vivek chhabra and i want to remove spaces in this string and want a string vivekchhabra then how this could be done
    anybody help me please
    vivek

    String string = "Hello - This is a test!";
    String result = string.replaceAll(" ", "");
    System.out.println(result);This code results the following output:
    Hello-Thisisatest!

  • Get chars from string of numerals

    here is what I would like to accomplish:
    Put the last four integers of the systemDate into a variable so I can do some math with them.
    Thanks.

    Excellent.  Thank you for the info.  Very helpful.
    Dewey
    From: jchunick [email protected]
    Sent: Friday, June 03, 2011 4:20 PM
    To: Dewey Parker
    Subject: Re: get chars from string of numerals
    This is a post I made for the wiki which should help: http://director-online.com/dougwiki/index.php?title=Undocumented_Lingo#the_systemDate

  • Reading a string and remove chars

    Hi,
    I am new the java and I am having a problem with converting a string to an int. I have a data comming in to gbyte_in which is "1;1;1". I am then converting it to a string a spliting it up into three vars to hold each value. I am then converting the string to a int so I can use it. The problem comes when I try to convert the last value as I get a
    numberformatexception, I think there must be some chars such as Enter or line feed at the end causing the problem. I have tried using the gstr_string.replace('\n',' ') but still having the problem.
    I have put a basic example of what I am doing below, If someone could help a beginner with understanding what I am doing wrong I would be very greatful
    Thanks
    Joolz
    ** Start code**
    byte[] gbyte_in;
    private void CheckData_In()
    int i;
    /* make STRING of BYTE */
    String lstr_temp = new String(gbyte_in);
    /* take STRING a make an INT*/
    i = Integer.parseInt(lstr_temp);
    ** End code **

    Hi,
    I have,
    this is what comes in 1;2;3
    I can convert 1 and 2 to an int but 3 throws the error, I am just doing a substring looking for the ";". So I think there must be some special chars at the end, but I cannot find a way of removing them before I convert it to an int.
    Thanks
    Joolz

  • Help removing char from midpoint of string using deleteCharAt()

    How do you properly remove a char from a String at its midpoint? My attempt is on Line 80 and it does not want to work.
    I am using [http://java.sun.com/j2se/1.3/docs/api/java/lang/StringBuffer.html|http://java.sun.com/j2se/1.3/docs/api/java/lang/StringBuffer.html] as a reference for deleteCharAt()
    Am I on the right track or should I try something else?
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    public class Palindromes extends JFrame implements ActionListener
         JPanel centerPanel = new JPanel();
         JLabel enterDataLabel = new JLabel("  Enter a word or phrase with no punctuation: ");
         JTextField enterDataField = new JTextField(15);
         JLabel displayLabel = new JLabel("");
         JLabel spacer = new JLabel("");
         JButton submitButton = new JButton("Check");
         JButton clearButton = new JButton("Clear");
         public static void main(String[] args) throws IOException
              try
                   UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
              catch(Exception e)
                   JOptionPane.showMessageDialog(null,"The UIManager could not set the Look and Feel for this application.","Error",JOptionPane.INFORMATION_MESSAGE);
              Palindromes f = new Palindromes();
               f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
             f.setSize(300,120);
               f.setTitle("Playing with Palindromes");
               f.setResizable(false);
               f.setVisible(true);
         public Palindromes()
              Container c = getContentPane();
              c.setLayout((new BorderLayout()));
            centerPanel.setLayout(new GridLayout(6,1));
                   centerPanel.add(spacer);
                   centerPanel.add(enterDataLabel);
                   centerPanel.add(enterDataField);
                   centerPanel.add(displayLabel);
                   centerPanel.add(submitButton);
                   centerPanel.add(clearButton);
                   submitButton.addActionListener(this);
                   clearButton.addActionListener(this);
                   c.add(centerPanel, BorderLayout.CENTER);
                   addWindowListener(
                         new WindowAdapter()
                             public void windowClosing(WindowEvent e)
                                    int answer = JOptionPane.showConfirmDialog(null, "Are you sure you want to exit?", "Palindromes", JOptionPane.YES_NO_OPTION);
                                     if (answer == JOptionPane.YES_OPTION)
                                          System.exit(0);
         public void actionPerformed(ActionEvent e)
               String arg = e.getActionCommand();
              if(arg == "Check")
                   String word = enterDataField.getText();
                   int wordSize = word.length();
                  int midpoint = wordSize/2;
                   deleteCharAt(midpoint);
                   StringBuffer lastHalf = new StringBuffer(word.substring(midpoint));
                   StringBuffer firstHalf = new StringBuffer(word.substring(0,midpoint));
                   if (lastHalf == firstHalf)
                        displayLabel.setText(word + " is a palindrome!");
                   else
                        displayLabel.setText(word + " is NOT a palindrome!");                    
              if (arg == "Clear")
                   enterDataField.setText("");
                   displayLabel.setText("");
    }

    Looce wrote:
    80 |               deleteCharAt(midpoint);
    82 |               StringBuffer lastHalf = new StringBuffer(word.substring(midpoint));
    83 |               StringBuffer firstHalf = new StringBuffer(word.substring(0,midpoint));line numbering courtesy of GNOME's text editor(replying to self)
    deleteCharAt is an instance method of StringBuffer, so you need to have one to work with. Suggestion: drop lines 82/83 and use String result = new StringBuffer(word).deleteCharAt(midpoint).toString();

Maybe you are looking for