Trouver toutes les lettres majuscules d'une chaîne de caractères en java
Donc j'essaye de trouver toutes les lettres en majuscules d'une chaîne de la part de l'utilisateur, mais je reçois cette erreur d'exécution:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
String index out of range: 4
at java.lang.String.charAt(String.java:686)
at P43.main(P43.java:13)
Je me sens stupide, mais je ne peux pas comprendre cela et oracle même parle de charAt sur la page java.lang.StringIndexOutOfBoundsException
Voici mon code pour trouver les lettres majuscules et de les imprimer:
import java.io.*;
import java.util.*;
public class P43{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
//Uppercase
String isUp = "";
System.out.print("Please give a string: ");
String x = in.next();
int z = x.length();
for(int y = 0; y <= z; y++){
if(Character.isUpperCase(x.charAt(y))){
char w = x.charAt(y);
isUp = isUp + w + " ";
}
}
System.out.println("The uppercase characters are " + isUp);
//Uppercase
}
}
J'apprécierais vraiment de l'entrée et ou de l'aide.
Le simple fait de mentionner, donner des noms significatifs à votre variable/classe/méthode des noms plutôt que de les nommer x,y,z et w
Certainement. Remarquez que dans ma réponse, j'ai utilisé des identificateurs tels que
Certainement. Remarquez que dans ma réponse, j'ai utilisé des identificateurs tels que
inputString
. utilisation i, j, k
pour les index avec les boucles magnétiques, et vous pouvez les utiliser c
pour un personnage, mais rien d'autre de lui donner un nom propre.OriginalL'auteur EvanD | 2012-10-31
Vous devez vous connecter pour publier un commentaire.
devrait être
Souviens d'index de tableau commence à partir de ZÉRO.
La longueur de la chaîne retourne
Parce boucle a commencé à partir de ZÉRO, la boucle doit s'arrêter à longueur-1.
OriginalL'auteur kosa
Le tableau d'index out of bounds est due à la boucle ne se termine
length - 1
, il est appelé à disparaître surlength
La plupart de l'itération de boucle doit être de la forme:
Il en va de même avec une chaîne.
Peut-être d'une façon plus propre serait:
Edit: Oublié
String
Ne pas mettre en œuvreIterable<Character>
, idiot Java.OriginalL'auteur azz
Avec Java 8, vous pouvez également utiliser des lambdas. Convertir le
String
dans unIntStream
, utiliser un filtre pour obtenir les caractères en majuscules uniquement, et créer un nouveauString
en ajoutant les caractères filtrées à unStringBuilder
:Inspiré par:
IntStream
String
OriginalL'auteur ltlBeBoy
...
Méthode:
Utilisation:
OriginalL'auteur Silambarasan Poonguti
Salut l'une de l'étape facile de trouver des majuscules char dans une chaîne...
Programme
Sortie
Entrer n'importe quelle Chaîne :
Bienvenue sur La Chaîne de Monde
Réponse : WTHSWRD
OriginalL'auteur Praveenkumar_V
Vous pouvez augmenter la lisibilité de votre code et de bénéficier de quelques autres fonctionnalités modernes Java ici. Veuillez utiliser le Flux approche pour résoudre ce problème. Aussi, je suggère d'importer le moins grand nombre de bibliothèques dans votre classe. Veuillez éviter d'utiliser .* lors de l'importation.
D'entrée d'échantillon:
saveChangesInTheEditor
Exemple de sortie:
C I T E
OriginalL'auteur Vahid
charAt
renvoie un code UTF-16 de l'unité. UTF-16 est un type d'encodage du jeu de caractères Unicode.OriginalL'auteur Devooty inn
Cette réponse n'a pas d'explications comme quoi il est utile. Ce code serait beaucoup plus utile si il y a aussi une explication de la façon dont ce code réponses les utilisateurs de la question.
OriginalL'auteur Bhanu