gpt4 book ai didi

java - 如何在没有字符串方法的情况下隔离第一个和第二个数字(java 学校项目)

转载 作者:行者123 更新时间:2023-11-30 10:19:03 25 4
gpt4 key购买 nike

在我的学校项目中,老师要求我们不使用任何字符串方法,但我需要隔离第一个数字和第二个数字。该号码的长度为 6 到 9 位。

小程序获取产品的模型代码并将其分解。第一个数字将与类别 (c) 相关联,第二个数字与该类别中的产品 (p) 相关联,其余的将打印为型号。

你知道如何实现它吗?

这是完整的程序:

 public class GestionCodesProduits {

/**
*
* @param args
*/
public static void main(String[] args) {

//CONSTANTE
final String MSG_PRESENTATION = "Ce programme permet de creer des codes de produits electroniques\n"
+ "et d'afficher l'information sur un produit selon son code\n\n\n";

final String MSG_MENU_PRINCIPAL = "----\nMENU\n----\n\n1.Construire un code produit\n2.Afficher les informations sur un produit"
+ "\n3.Quitter\n\nEntrez votre choix (1,2 ou 3) : ";

final String MSG_CATEGORIES = "----------\nCATEGORIES\n----------\n\nSelectionner type de produit:\n"
+ "1.Ordinateurs\n2.Televiseurs\n3.Appareils photo\n4.Petits electros\n\n\n"
+ "Entrez le numero de categorie du produit : ";

final String MSG_MENU_ORDI = "--------\nPRODUITS : \n--------\n\n1.Ordinateur de bureau\n2.Portable\n3.Tablette"
+ "\n4.Moniteur\n5.Imprimante/Numerisateur"
+ "\n\nEntrez le numero du produit : ";

final String MSG_MENU_TELE = "--------\nPRODUITS : \n--------\n\n1.Televiseur\n2.Projecteur"
+ "\n\nEntrez le numero du produit : ";

final String MSG_MENU_PELECTROS = "--------\nPRODUITS : \n--------\n\n1.Cafetiere\n2.Robot culinaire\n3.Melangeur\n4.Batteur"
+ "\n5.Friteuse/Grill\n6.Grille-Pain/Four Grille-Pain"
+ "\n\nEntrez le numero du produit : ";

final String MSG_INFO_CATEGORIES = "CATEGORIE : ";
final String MSG_INFO_PRODUIT = "PRODUIT : ";
final String MSG_INFO_NUM_MODELE = "NUMERO DE MODELE :";

final String MSG_END_PROGRAM = "\n\nFIN NORMALE DU PROGRAMME";
final String MSG_PRODUCT_CODE = "ENTREZ LE CODE DU PRODUIT : ";
final String MSG_NUM_MODELE = "Entree numero de modele : ";
final String MSG_RETOUR = "Appuyez sur <ENTREE> pour revenir au menu...";

final String MSG_ERR_MENU = "\nErreur ! Vous devez entrer 1, 2 (ou 3 pour quitter). \nRecommencez...";
final String MSG_ERR_CATEGORIES = "\nErreur ! Entrez un numero entre 1 et 4. \nRecommencez...";
final String MSG_ERR_ORDI = "\nErreur ! Entrez un numero entre 1 et 5. \nRecommencez...";
final String MSG_ERR_TELE = "\nErreur ! Entrez un numero entre 1 et 2. \nRecommencez...";
final String MSG_ERR_PELECTRO = "\nErreur ! Entrez un numero entre 1 et 6. \nRecommencez...";
final String MSG_ERR_NUM_MODELE = "\nErreur ! Le numero du modele est invalide. \nRecommencez...";
final String MSG_ERR_CODE = "*** Ce code de produit est invalide ***";

//VARIABLE

char selectionMenuPrincipal;

char selectionCategories;

char selectionProduits;

int selectionNumModele;

int codeProduit;
// AFFICHAGE MENU PRESENTATION
System.out.println(MSG_PRESENTATION);

//AFFICHAGE MENU PRINCIPAL
do {
System.out.print(MSG_MENU_PRINCIPAL);
selectionMenuPrincipal = Clavier.lireCharLn();

while (selectionMenuPrincipal < '1' || selectionMenuPrincipal > '3') {
System.out.print(MSG_ERR_MENU);
selectionMenuPrincipal = Clavier.lireCharLn();
}

//AFFICHAGE MENU CATEGORIES
if (selectionMenuPrincipal == '1') {
System.out.print(MSG_CATEGORIES);
selectionCategories = Clavier.lireCharLn();

//VALIDATION DE LA SELECTION CATEGORIE
while (selectionCategories < '1' || selectionCategories > '4') {
System.out.println(MSG_ERR_CATEGORIES);
selectionCategories = Clavier.lireCharLn();
}

//SELECTION DE LA CATEGORIE
if (selectionCategories == '1') {
System.out.print(MSG_MENU_ORDI);
selectionProduits = Clavier.lireCharLn();
System.out.print(MSG_NUM_MODELE);
selectionNumModele = Clavier.lireInt();

//VALIDATION DU NUMERO DE MODELE
while (selectionNumModele < 1000 || selectionNumModele > 9999999) {
System.out.println(MSG_ERR_NUM_MODELE);
selectionNumModele = Clavier.lireInt();
}
System.out.println("CODE DE PRODUIT : " + selectionCategories + selectionProduits + selectionNumModele);
System.out.print(MSG_RETOUR);
Clavier.lireFinLigne();

}else if (selectionCategories == '2') {
System.out.print(MSG_MENU_TELE);
selectionProduits = Clavier.lireChar();
System.out.print(MSG_NUM_MODELE);
selectionNumModele = Clavier.lireInt();

//VALIDATION DU NUMERO DE MODELE
while (selectionNumModele < 1000 || selectionNumModele >= 9999999) {
System.out.println(MSG_ERR_NUM_MODELE);
selectionNumModele = Clavier.lireInt();
}
System.out.println("CODE DE PRODUIT : " + selectionCategories + selectionProduits + selectionNumModele);
System.out.print(MSG_RETOUR);
Clavier.lireFinLigne();

}else if (selectionCategories == '3') {
System.out.print(MSG_NUM_MODELE);
selectionNumModele = Clavier.lireInt();

//VALIDATION DU NUMERO DE MODELE
while (selectionNumModele < 1000 || selectionNumModele >= 9999999) {
System.out.println(MSG_ERR_NUM_MODELE);
selectionNumModele = Clavier.lireInt();
}
System.out.println("CODE DE PRODUIT : " + selectionCategories + selectionNumModele);
System.out.print(MSG_RETOUR);
Clavier.lireFinLigne();

}else if (selectionCategories == '4') {
System.out.print(MSG_MENU_PELECTROS);
selectionProduits = Clavier.lireChar();
System.out.print(MSG_NUM_MODELE);
selectionNumModele = Clavier.lireInt();

//VALIDATION DU NUMERO DE MODELE
while (selectionNumModele < 1000 || selectionNumModele > 9999999) {
System.out.print(MSG_ERR_NUM_MODELE);
selectionNumModele = Clavier.lireInt();
}
System.out.println("CODE DE PRODUIT : " + selectionCategories + selectionProduits + selectionNumModele);
System.out.print(MSG_RETOUR);
Clavier.lireFinLigne();

}

//AFFICHAGE DU MENU D'INFORMATION DE CODE DE PRODUIT
}else if (selectionMenuPrincipal == '2') {
System.out.print(MSG_PRODUCT_CODE);
codeProduit = Clavier.lireInt();
while (codeProduit < 100000 || codeProduit > 999999999) {
System.out.print(MSG_ERR_CODE);
codeProduit = Clavier.lireInt();
}


}
}while (selectionMenuPrincipal !='3');
System.out.print(MSG_END_PROGRAM);
}

}

这是我正在努力解决的部分:

}else if (selectionMenuPrincipal == '2') {
System.out.print(MSG_PRODUCT_CODE);
codeProduit = Clavier.lireInt();
while (codeProduit < 100000 || codeProduit > 999999999) {
System.out.print(MSG_ERR_CODE);
codeProduit = Clavier.lireInt();
}

最佳答案

这是使用模数和除以 10 来构建型号直到剩下 2 位数字的快速演示;然后获取类别和产品。

public class NumberDecomposer {

public static void main(String[] args) {
decompose(1212345);
decompose(24123457);
}

private static void decompose(int modelCode) {
System.out.println("Original modelCode="+modelCode);
int factor = 1;
int modelNumber = 0;
while (modelCode >= 100) {
int lastDigit = modelCode % 10;
modelNumber += lastDigit * factor;
factor *= 10;
modelCode /= 10;
}
int productCode = modelCode % 10;
int category = modelCode / 10;
System.out.printf("Category=%d; Product=%d; Model number=%d\n", category, productCode, modelNumber);
}

}

下面是两个例子的输出:

Original modelCode=1212345
Category=1; Product=2; Model number=12345

Original modelCode=24123457
Category=2; Product=4; Model number=123457

关于java - 如何在没有字符串方法的情况下隔离第一个和第二个数字(java 学校项目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48895418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com