Avatar billede joki Mester
12. februar 2005 - 17:29 Der er 7 kommentarer og
1 løsning

Få fat i den sidste karakter i en streng med substring()

Hej

jeg skal have indlæst en streng på 12 cifre til et arry.
jeg bruger substring(i, i+1)
men den kommer selvfølgelig til at gå ud over strenglængden ved den sidste karakter. Hvordan henter jeg den ud, når den samtidig skal kunne blive til en int med Integer.ParseInt(). Det kan man ikke med getChar kan man ??
Avatar billede arne_v Ekspert
12. februar 2005 - 17:33 #1
String s = "123456789012";
int[] a = new int[s.length()];
for(int i = 0; i < a.length; i++) {
  s[i] = Integer.parseInt(s.substring(i,i+1));
}

bør virke
Avatar billede arne_v Ekspert
12. februar 2005 - 17:33 #2
ditto:

String s = "123456789012";
int[] a = new int[s.length()];
for(int i = 0; i < a.length; i++) {
  a[i] = (int)s.charAt(i) - (int)'0';
}
Avatar billede arne_v Ekspert
12. februar 2005 - 17:34 #3
rettelse til 17:33:03

a[i] =
Avatar billede arne_v Ekspert
12. februar 2005 - 17:46 #4
Komplet test kode:

public class S {
    public static void main(String[] args) {
        test1();
        test2();
    }
    public static void test1() {
        String s = "123456789012";
        int[] a = new int[s.length()];
        for(int i = 0; i < a.length; i++) {
          a[i] = Integer.parseInt(s.substring(i,i+1));
        }
        for(int i = 0; i < a.length; i++) {
            System.out.print(" " + a[i]);
        }
        System.out.println();
    }
    public static void test2() {
        String s = "123456789012";
        int[] a = new int[s.length()];
        for(int i = 0; i < a.length; i++) {
          a[i] = (int)s.charAt(i) - (int)'0';
        }       
        for(int i = 0; i < a.length; i++) {
            System.out.print(" " + a[i]);
        }
        System.out.println();
    }
}

output:

1 2 3 4 5 6 7 8 9 0 1 2
1 2 3 4 5 6 7 8 9 0 1 2
Avatar billede joki Mester
15. februar 2005 - 08:23 #5
det ser ud til at virke med a[i] = (int)s.charAt(i); så smid gerne et svar.

Hvad laver "  - (int)'0' " i neden stående sætning.
a[i] = (int)s.charAt(i) - (int)'0';
Avatar billede arne_v Ekspert
15. februar 2005 - 08:25 #6
svar
Avatar billede arne_v Ekspert
15. februar 2005 - 08:26 #7
'1' er 49
'0' er 48

så (int)'1' - (int)'0' er 1
Avatar billede arne_v Ekspert
25. februar 2005 - 20:29 #8
Så mangler du bare at acceptere
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