Visualizzazione dei risultati da 1 a 10 su 14

Hybrid View

  1. #1
    Quote Originariamente inviata da andbin Visualizza il messaggio
    No, attenzione, il carattere spazio NON lo ritrovi nell'array. Dal momento che nella stringa iniziale hai più spazi consecutivi, il singolo spazio come separatore causa la presenza di stringhe "vuote" (lunghezza 0) tra due spazi adiacenti!

    Se hai:

    codice:
    String s = "ciao   ciao";
    con 3 spazi tra i due ciao, allora ottieni un array:

    [0] = "ciao"
    [1] = "" (stringa vuota!)
    [2] = "" (stringa vuota!)
    [3] = "ciao"

    Questo perché lo spazio fa da separatore e con i 3 spazi consecutivi si comporta così:

    codice:
    SPAZIO    SPAZIO    SPAZIO
           ""        ""


    Basta usare

    split(" +")

    ovvero il quantificatore per dire "uno o più spazi".
    Perfetto grazie mille! soluzione anche molto semplice.
    In effetti quando andavo a stampare l'array di stringhe il risultato era semplicemente un campo vuoto che poteva essere confuso con uno spazio... grazie ancora!
    comunque adesso ho un altro piccolo problema chiamando split come

    String[] arr=s.split(" +|<|>");

    la stringa ciao mondo data<e> fine viene spezzata come

    arr[0]="ciao"
    arr[1]="mondo"
    arr[2]="data"
    arr[3]="e"
    arr[4]=""
    arr[5]"fine"

    e se splitto come

    String[] arr=s.split(" +|<|> ");

    il risultato è

    arr[0]="ciao"
    arr[1]="mondo"
    arr[2]="data"
    arr[3]="e>"
    arr[4]="fine"

    cosa dovrei passare a split come parametri per avere
    arr[0]="ciao"
    arr[1]="mondo"
    arr[2]="data"
    arr[3]="e"
    arr[4]="fine"

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da james101 Visualizza il messaggio
    cosa dovrei passare a split come parametri per avere
    arr[0]="ciao"
    arr[1]="mondo"
    arr[2]="data"
    arr[3]="e"
    arr[4]="fine"
    Così:

    codice:
    s.split(" *<|> *| +")

    In questo modo se ">" è seguito da 0 o più spazi viene trattato come un solo separatore. Idem, similare per < .
    Nota che ho spostato " +" come ultimo in OR.
    Ultima modifica di andbin; 08-11-2017 a 14:03
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.