Print Friendly, PDF & Email

[:en]In questo tutorial imparerete come fare conteggio Java String

  1.  il numero di lettere
  2. il numero di vocali
  3. il numero di consonanti
  4. il numero di spazi

Per il backend implementeremo un metodo per ogni proprietà desiderata e per andare oltre, creeremo una visualizzazione HTML per visualizzare i risultati con l’aiuto di Dukescript tutto in meno di 30 minuti.

Lunghezza della stringa

Possiamo ottenere la lunghezza di un testo con la lunghezza del metodo della classe String come segue:

int lettere (String myText) {
Return myText.length();
}

Contare gli spazi di una stringa

Per contare gli spazi di una stringa useremo un espressioni regolari di base per identificare lo spazio vuoto di char. Il carattere di spaziatura può essere rappresen[ ]tato come (si noti lo spazio tra le parentesi).

int interamente (String myText) {
 Return myText.length()-myText.replaceAll("[ ]","").length();
}

Contare le vocali di una stringa

Per contare le vocali che stiamo usando RegEx

int vocali (String myText) {
 Return myText.length()-myText.replaceAll("[aeiouAEIOU]","").length();
}

Contare le consonanti di una stringa

Per contare le consonanti selezioniamo tutte le lettere che non sono presenti nella regex di vocali.

int consonanti (String myText) {
 Return myText.length()-myText.replaceAll("[b-df-hj-np-tv-zB-DF-HJ-NP-TV-Z]","").length();
}

Disegnare il modello di dati

Come possiamo rilevare che abbiamo bisogno per il modello di dati di una variabile di tipo stringa denominata myText, che è destinato a contenere il testo da analizzare.

Class StringStatistics {
 MyText stringa;
 public StringStatistics(myText) {
  this.myText=myText;
 }
}

Eseguendone il modo di dukescript che stiamo andando ad avere

@Model (className = "StringStatistics", proprietà = {
@Property (nome = "myText", type=String.class)
})

Progettare la visualizzazione

Avanti che ci accingiamo a creare un codice HTML per la visualizzazione come questo

<textarea placeholder="Type a text to analyze..."></textarea>
 
<p>
La stringa<pre></pre>ha
<ul></ul>
	<li></li>
	<li></li>
	<li></li>
	<li></li>
 

Quindi stiamo per aggiungere il binding di knockout e il nostro codice HTML finale diventa come segue

<textarea></textarea>
  associare = "valore: myText, valueUpdate: 'afterkeydown'"
  segnaposto = "Digitare un testo da analizzare..." &gt;
 
<p>
La stringa<pre data-bind="text: myText"></pre>ha
<ul></ul>
	<li data-bind="text: letters()+' letters.'"></li>
  	<li data-bind="text: vowels()+' vowels.'"></li>
    <li data-bind="text: consonants()+' consonants.'"></li>
    <li data-bind="text: spaces()+' spaces.'"></li>
 

Disegnare il modello di dati

Come possiamo rilevare che abbiamo bisogno per il modello di dati di una variabile di tipo stringa denominata myText, che è destinato a contenere il testo da analizzare.

Class StringStatistics {
 MyText stringa;
 public StringStatistics(myText) {
  this.myText=myText;
 }
}

Eseguendone il modo di dukescript che stiamo andando ad avere

@Model (className = "StringStatistics", proprietà = {
@Property (nome = "myText", type=String.class)
})

Migrare il codice Java Dukescript

Nostro codice finale sarà di seguito becomeas

pacchetto dew.demo.string;

importazione net.java.html.json.Model;
importazione net.java.html.json.ComputedProperty;
importazione net.java.html.json.Property;

@Model (className = "StringStatistics", proprietà = {
@Property (nome = "myText", type=String.class)
})
Class PrimeDemo {

@ComputedProperty static int lettere (String myText) {
Return myText.length();
}

@ComputedProperty static int vocali (String myText) {
Return myText.length()-myText.replaceAll("[aeiouAEIOU]","").length();
}

@ComputedProperty static int consonanti (String myText) {
Return myText.length()-myText.replaceAll("[b-df-hj-np-tv-zB-DF-HJ-NP-TV-Z]","").length();
}

@ComputedProperty static int interamente (String myText) {
Return myText.length()-myText.replaceAll("[ ]","").length();
}

static {
nuovo StringStatistics("").applyBindings();
}
}

[not_mobile]Ecco la demo live (non mostrerà il mobile):[/not_mobile]

Nel caso in cui avete problemi a visualizzare la demo, si può trovare sul seguente link: http://dew.apidesign.org/dew/#fd4a282ff87f23473914c68baa[:es]e95d03Para crear este código où de visualizar desde la perspectiva de ONU sviluppatore full-stack. El en front-end queremos mostrar ONU campo de entrada donde el usuario pueda escribir cualquier cosa y podamos calcularle dinámicamente algunas propiedades como:

  1. número de letras
  2. número de vocales
  3. número de consonantes
  4. número de espacios

Para el backend implemetaremos ONU método para cada propiedad.

Primero vamos a crear ONU HTML para la vista como el siguiente

<textarea placeholder="Type a text to analyze..."></textarea>
 
<p>
La stringa<pre></pre>ha
<ul></ul>
	<li></li>
	<li></li>
	<li></li>
	<li></li>
 

Vamos Liego un obtiene los enlaces de knockout y nuestro código HTML terminado se convertirá en

<textarea></textarea>
  associare = "valore: myText, valueUpdate: 'afterkeydown'"
  segnaposto = "Digitare un testo da analizzare..." &gt;
 
<p>
La stringa<pre data-bind="text: myText"></pre>ha
<ul></ul>
	<li data-bind="text: letters()+' letters.'"></li>
  	<li data-bind="text: vowels()+' vowels.'"></li>
    <li data-bind="text: consonants()+' consonants.'"></li>
    <li data-bind="text: spaces()+' spaces.'"></li>
 

Como podemos detectar, para el modelo de datos necesitamos una variabile de tipo stringa llamada myText.

Class StringStatistics {
 MyText stringa;
 public StringStatistics(myText) {
  this.myText=myText;
 }
}

Realizando lo anteriore alla manera de dukescript obtendremos

@Model (className = "StringStatistics", proprietà = {
@Property (nome = "myText", type=String.class)
})

luego crearemos el método para obtener la longitud de la cadena

int lettere (String myText) {
Return myText.length();
}

luego con expresiones regulares los demás métodos

int vocali (String myText) {
 Return myText.length()-myText.replaceAll("[aeiouAEIOU]","").length();
}

int consonanti (String myText) {
 Return myText.length()-myText.replaceAll("[b-df-hj-np-tv-zB-DF-HJ-NP-TV-Z]","").length();
}

int interamente (String myText) {
 Return myText.length()-myText.replaceAll("[ ]","").length();
}

Para el código Java aplicanfo las anotaciones de dukescript nuetro código terminado se convietrte en

pacchetto dew.demo.string;

importazione net.java.html.json.Model;
importazione net.java.html.json.ComputedProperty;
importazione net.java.html.json.Property;

@Model (className = "StringStatistics", proprietà = {
@Property (nome = "myText", type=String.class)
})
Class PrimeDemo {

@ComputedProperty static int lettere (String myText) {
Return myText.length();
}

@ComputedProperty static int vocali (String myText) {
Return myText.length()-myText.replaceAll("[aeiouAEIOU]","").length();
}

@ComputedProperty static int consonanti (String myText) {
Return myText.length()-myText.replaceAll("[b-df-hj-np-tv-zB-DF-HJ-NP-TV-Z]","").length();
}

@ComputedProperty static int interamente (String myText) {
Return myText.length()-myText.replaceAll("[ ]","").length();
}

static {
nuovo StringStatistics("").applyBindings();
}
}

[not_mobile]Aquí puede observar ONU demo percorso (non disponible en versiòn mòvil):
[/not_mobile]

Si tuviera problemas en visualizar, puede verlo en la liga: http://dew.apidesign.org/dew/#fd4a282ff87f23473914c68baae95d03[:]

Radio

Do NOT follow this link or you will be banned from the site!