Fonction Mid fonctionne pas

Fermé
domxaline - Modifié par Whismeril le 22/07/2015 à 22:52
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 25 juil. 2015 à 21:50
Bonjour,
fonction Mid marche pas
mon prg consiste que l'utilisateur entre une phrase et lui donne un rang de caractères à supprimer et à la fin prg s'affiche le phrase
mais en exécutant mon prg, j'ai ce messages suivantes; quelqu'un peut m'aider svp?

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method bla(int) is undefined for the type Divers3

at Divers3.main(Divers3.java:14)

import java.util.Scanner;
public class Divers3 
{
 public static void main(String[] args) 
 {
     String bla;
     int nb,i,j;
     System.out.println("Entrez une phrase:");
     Scanner sc = new Scanner(System.in);
     bla=sc.nextLine();
     System.out.println("Entrez le rang du caractère à supprimer:");
     nb=sc.nextInt();
     int l=bla.length();
     bla=Mid(bla,1,(nb-1) & Mid(bla(nb+1),(l-nb)));
     
     System.out.println("La nouvelle phrase est:"+bla); 
 }
 }


EDIT: Précision du langage dans la coloration syntaxique.

A voir également:

6 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
22 juil. 2015 à 20:15
Bonjour,

"en exécutant mon prg (...) compilation problem"
Avant d'exécuter un programme il faut le compiler !

Et pour utiliser des méthodes comme bla ou Mid, il faudrait qu'elles existent... or ici il n'y a que la méthode main !

Java n'est pas magicien, il ne va pas inventer ce qu'il ne connaît pas...
0
Mid est une fonction de java
qui fait:
Mid("Zorro is back", 4, 7) vaut "ro is b"
Mid("Zorro is back", 12, 1) vaut "c"

Len(chaîne) : renvoie le nombre de caractères d'une chaîne
Mid(chaîne,n1,n2) : renvoie un extrait de la chaîne,
commençant au caractère n1 et faisant n2 caractères de long.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
25 juil. 2015 à 13:37
Non, Mid n'est pas une fonction de Java. Pas plus que ne l'est Len. Tu dois confondre avec le VB...
0
j'ai corrigé ainsi suit
import java.util.Scanner;
public class Testing4 
{
  public static void main(String[] args) 
  {
     String bla;
     int nb;
     System.out.println("Entrez une phrase:");
     Scanner sc = new Scanner(System.in);
     bla=sc.nextLine();
     System.out.println("Entrez le rang du caractère à supprimer:");
     nb=sc.nextInt();
     int La=bla.length();
     bla=Mid(bla,1,(nb-1)); Mid(bla,(nb+1),(La-nb));
       //& Mid(bla(nb+1),(l-nb)));
     
     System.out.println("La nouvelle phrase est:"+bla); 
    }

private static String Mid(String bla, int l, int nb) {
 // TODO Auto-generated method stub
 return null;
}
  }

en l'exécutant je trouve ça :

Entrez une phrase:
je suis libre
Entrez le rang du caractère à supprimer:
3
La nouvelle phrase est:null

aidez moi svp

EDIT: Précision du langage dans la coloration syntaxique.
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
22 juil. 2015 à 22:51
"La nouvelle phrase est:null "

C'est ce que tu lui as demandé avec return null;
0
j'ai réussi à changer mon prg ainsi:

import java.util.Scanner;
public class Testing4
{
public static void main(String[] args)
{
String bla;
System.out.println("Entrez une phrase:");
Scanner sc = new Scanner(System.in);
bla=sc.nextLine();
System.out.println("Entrez le rang du caractère à supprimer:");
String nb=sc.nextLine();
System.out.println(bla.replace(bla.substring(bla.indexOf(nb),bla.indexOf(nb)+nb.length()),""));
}
}

mais quelqu'un peut m'expliquer cette ligne quand même j'ai des confusions

System.out.println(bla.replace(bla.substring(bla.indexOf(nb),bla.indexOf(nb)+nb.length()),""));

et encore j'ai donné le String pour supprimer
comment faire dans le cas des nombres (int)
par exemple:
si l'utilisateur donne
caractère commence à partir de <chiffre> et jusqu'au <chiffre>
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
Modifié par fiddy le 25/07/2015 à 13:44
Il suffit de regarder la javadoc :
bla.indexOf(nb) renvoie la première position à partir du début où l'on trouve nb dans bla.
nb.length() renvoie la longueur de nb.

Si c'est un nombre, il suffit de le convertir en string. (Integer.toString(int) ou String.valueOf(int)). Puis d'utiliser la méthode substring() du nouveau string.
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 25/07/2015 à 14:49
Bonjour,

Attention à replace, cette méthode supprime toutes les occurrences de la chaîne trouvée.

Exemple :
Entrez une phrase:
123412341234
Entrez le rang du caractère à supprimer:
3

124124124

Dans cet exemple on a supprimés tous les "3" de la chaîne de caractères...

De plus comme indiqué par fiddy, il faut que tu ais un nombre, mais mieux qu'une conversion tu peux directement faire
int nb=sc.nextInt();


Et ensuite, plutôt que le replace qui ne fera pas ce qu'il faut, un découpage de la chaîne avant et après ce qui est à supprimer peut faire le job :
bla.substring(0,nb)+bla.substring(nb+1)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
personne pour m'aider
0
j'avais fais ainsi merci pour vos aides:

import java.util.Scanner;
public class Divers3
{
public static void main(String[] args)
{
String bla;
System.out.println("Entrez une phrase:");
Scanner sc = new Scanner(System.in);
bla=sc.nextLine();
StringBuilder str = new StringBuilder(bla);

System.out.println("Entrez le position début du caractère à supprimer:");
int asup=sc.nextInt();
System.out.println("Entrez position fin du caractère à supprimer:");
int asup1=sc.nextInt();
str.replace(asup, asup1, "");
System.out.println("Apres avoir supprimé votre bla est: "+str);
}
}
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
25 juil. 2015 à 21:50
Ouais, bah cherche encore... ou relis les réponses que l'on t'a déjà donné !
0