Avatar billede hejhejhej Nybegynder
08. maj 2003 - 11:35 Der er 9 kommentarer og
1 løsning

Opdel string i mindre "bider"......

Jeg har en lang string, fx hejmeddig denne string vil jeg gerne have delt op i hej med dig ,men hvordan deler man en string op i bider på 3 tegn?
Avatar billede disky Nybegynder
08. maj 2003 - 11:46 #1
du bruger .subString() metoden på din String.
Avatar billede disky Nybegynder
08. maj 2003 - 11:47 #2
ups .substring()
Avatar billede hejhejhej Nybegynder
08. maj 2003 - 11:52 #3
du gider vel ikke komme med et lille eksempel på brugen af substring :-)
Avatar billede disky Nybegynder
08. maj 2003 - 12:01 #4
Dette program opdeler en String i dele af en bestemt størrelse:

/**
* Created by IntelliJ IDEA.
* User: Søren Reinke
* Date: May 8, 2003
* Time: 11:48:15 AM
* To change this template use Options | File Templates.
*/
public class OpDel
{
    private static final int størrelse=3;

    public OpDel()
    {

        String text="Dette er en test";
        int pos=0;
        while(pos<text.length())
        {
            String del=text.substring(pos,(pos+størrelse<=text.length()?(pos+størrelse):text.length()));
            System.out.println("del = '"+del+"'");
            pos+=størrelse;
        }
    }

    public static void main(String[] args)
    {
        new OpDel();
    }
}
Avatar billede jakoba Nybegynder
08. maj 2003 - 12:54 #5
eller hvis du vil have dine strenge i et array:

  public static String[] opdelStreng( String inStr, int lengde ) {
        // opdeler strengen inStr i stykker der hver er lengde bogstaver lange
      int arrLengde = (int)Math.ceil( (double)inStr.length() / lengde );
      String[] resultat = new String[arrLengde];
      int i,j;
      for ( i=0, j=0; j<arrLengde-1; i+=lengde, j++ ) {
        resultat[j] = inStr.substring( i, i+lengde );
      }
      resultat[j] = inStr.substring( i );
      return resultat;
  } //end of method opdelString

mvh JakobA
Avatar billede arne_v Ekspert
08. maj 2003 - 13:08 #6
jakoba>

int arrLengde = (inStr.length() - 1)  / lengde + 1;
Avatar billede jakoba Nybegynder
08. maj 2003 - 13:24 #7
arne-v >
  String[] exmpl = opdelStreng( "", 2 );
får så en arraylængde på 1.
burde det ikke være 0 ?
Avatar billede jakoba Nybegynder
08. maj 2003 - 13:28 #8
Næe, netop ikke. smukt. takker
Avatar billede jakoba Nybegynder
08. maj 2003 - 13:34 #9
Jo pokkerme. et array må gerne have lengden 0, og det er det korrekte at have der. fejlen er i linien
      resultat[j] = inStr.substring( i );  // j bør range-testes først.

  public static String[] opdelStreng( String inStr, int lengde ) {
        // opdeler strengen inStr i stykker der hver er lengde bogstaver lange
      int arrLengde = (int)Math.ceil( (double)inStr.length() / lengde );
      String[] resultat = new String[arrLengde];
      int i,j;
      for ( i=0, j=0; j<arrLengde-1; i+=lengde, j++ ) {
        resultat[j] = inStr.substring( i, i+lengde );
      }
      if ( j<arrLengde ) resultat[j] = inStr.substring( i );
      return resultat;
  } //end of method opdelString

mvh JakobA
Avatar billede hejhejhej Nybegynder
09. maj 2003 - 19:32 #10
Det virker
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