2012-12-11 12 views
-3

Il y a d'autres posts que je connais, mais ils ne concernent pas java. Ce que je demande est un moyen de vérifier si une chaîne contient un mot de plus de 56 caractères. Je veux ensuite insérer un "" dans le mot (probablement au milieu). Je veux que les espaces dans la chaîne d'origine restent là (split ("") ne m'aide pas à cause de ça).Vérifie si un mot dans une chaîne dépasse 50 caractères

+2

Comment définissez-vous un mot? –

+4

[Qu'avez-vous essayé?] (Http://www.whathaveyoutried.com/) Aussi, quelle est votre question? –

Répondre

8
Pattern.compile("\\w{56,}").matcher(string).find() 

en supposant, bien sûr, votre définition de « mot » correspond à la définition de modèle de « caractère de mot »: [a-zA-Z_0-9]

Pour déballer, qui semble juste pour 56 caractères ou plus de mots consécutifs.

Si vous le souhaitez, vous pouvez même conserver l'objet Matcher, ce qui vous permettra d'obtenir le start() et le end() du mot de 56+ lettres.

+0

C'est génial, mais comment puis-je insérer un "" au milieu quand je trouve le mot? – vejmartin

+0

Si vous gardez l'objet 'Matcher', vous pouvez obtenir la position du mot, puis faire ce que vous voulez. –

0

Boucle sur la chaîne, en utilisant la méthode indexOf() pour trouver l'espace suivant. Comparez l'index actuel avec le précédent pour voir s'il dépasse 50. Insérez votre espace au milieu et redémarrez votre boucle indexOf() à partir de ce point.

Questions connexes