Avatar billede viciodk Praktikant
05. marts 2003 - 00:38 Der er 4 kommentarer og
1 løsning

00.000 til 0

Hvordan kan man i Java lave en String med en værdi på f.eks. 0000000.000000 om til 0? Derudover ønskes alle mellemrum fra String'en fjernes, både i starten, i slutningen og midt i String'en. Jeg har denne kode (imports osv. er udeladt) hvor jeg henter indholdet af en tekstboks, fjerner eventuelle mellemrum i starten og i slutning og til sidst fjerner mellemrum midt i String'en (jeg håber jeg har gjort dette på den bedste måde? (for jeg fatter kun hvad der præcist sker på den øverste af linjerne herunder)):

String tekst_nederst = tekstfelt_nederst.getText().trim();
StringTokenizer st = new StringTokenizer(tekst_nederst);
StringBuffer buf = new StringBuffer(tekst_nederst.length());
while(st.hasMoreTokens())
  buf.append(st.nextToken());
JOptionPane.showMessageDialog(null, buf.toString());
Avatar billede arne_v Ekspert
05. marts 2003 - 08:01 #1
Jeg ville nok bare lave:

String s = felt.getText();
StrungBuffer sb = new StringBuffer("");
for(int i = 0; i < s.length(); i++) {
  char c = s.charAt(i);
  if(c != ' ') {
      sb.append(c);
  }
}
double d = Double.parseDouble(sb.toString());
int n = (int)d;
String ns = Integer.toString(n);
Avatar billede arne_v Ekspert
05. marts 2003 - 08:09 #2
StringBuffer - ikke StrungBuffer.

Test:

public class Tal {

    public static void main(String[] args) {
        String s = " 0 0 0 . 0 0 "; // felt.getText();
        StringBuffer sb = new StringBuffer("");
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c != ' ') {
                sb.append(c);
            }
        }
        double d = Double.parseDouble(sb.toString());
        int n = (int) d;
        String ns = Integer.toString(n);
        System.out.println("|" + ns + "|");
    }
}
Avatar billede btolstrup Nybegynder
05. marts 2003 - 08:22 #3
Jeg vil give Arne ret.

Dog vil jeg nok lave følgende:

double d = Double.parseDouble(sb.toString());
int n = (int)d;
String ns = Integer.toString(n);

om til:
int n = Integer.parseInt(sb.toString());
String ns = n;
Avatar billede arne_v Ekspert
05. marts 2003 - 08:40 #4
tolstrup>

Er du sikker på at Integer.parseInt kan klare decimal punktum ?

Accepterer din compiler assignmnet fra int til String ?
Avatar billede viciodk Praktikant
06. marts 2003 - 03:41 #5
Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester