Première fois ** Java **
Comment puis-je étudier efficacement ** Java ** (ou plutôt le codage lui-même)?
La réponse est simple: ** Créez l'application que vous souhaitez créer! **Je pense.
Je pense que le style le plus efficace est de vérifier et de mettre en œuvre les méthodes nécessaires au besoin.
Lorsque vous entrez le mot-clé du produit que vous souhaitez, comme un site général de la CE Un système qui renvoie des résultats de recherche (** code JAN du produit, titre, prix, URL de la page **) faire
Vous devez créer une base de données
Cette fois, j'ai essayé de créer une telle base de données instantanément
test.csv
JAN,Title,Price,URL
4543112341136,HG 1/144 (034)Frappez la liberté GUNDAM,1344,https://item.rakuten.co.jp/kenbill/4543112341136/
4543112655110,RG 1/144 (002)MS-06S Zaku II de Char,2100,https://item.rakuten.co.jp/kenbill/4543112655110/
4543112752994,MG 1/100 Duel Gundam Assault Shroud GAT-X102,3528,https://item.rakuten.co.jp/kenbill/4543112752994/
4543112815972,MG 1/100 MSN-06S Sinanju,6804,https://item.rakuten.co.jp/kenbill/4543112815972/
4543112728180,MG 1/100 RX-0 Full Armor Unicorn Gundam Ver.ka,6720,https://item.rakuten.co.jp/kenbill/4543112728180/
4573102568328,HGUC 1/144 (108)RGZ-95C Risel(Machine du capitaine),1848,https://item.rakuten.co.jp/kenbill/4573102568328/
À partir de la gauche, *** code JAN, titre du produit, prix, lien vers la page produit ***
Par exemple, si un utilisateur recherche "** Gundam ", une liste de produits (code JAN, titre du produit, prix, URL) qui inclut " Gundam **" dans le titre du produit sera renvoyée comme résultat de la recherche. C'est une fabrication.
Historique de la dernière mise à jour: 21/04/2019
Main.java
//coding:utf-8
import java.io.FileWriter;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;//Entrée standard
import java.io.IOException;
public class Main{
public static String green = "\u001b[00;32m";
public static String pink = "\u001b[00;35m";
public static String end = "\u001b[00m";
public static HashMap<String, String> HashTitle = new HashMap<String, String>();
public static HashMap<String, String> HashPrice = new HashMap<String, String>();
public static HashMap<String, String> HashURL = new HashMap<String, String>();
public static void main(String args[]){
//Lire le fichier
try{
File file = new File("test.csv");
FileReader filereader = new FileReader(file);
BufferedReader bufferreader = new BufferedReader(filereader);
String line;
int cnt=0;
while ((line = bufferreader.readLine()) != null) {
String[] list = line.split(",");
String JAN=list[0], Title=list[1], Price=list[2], URL=list[3];
if (cnt != 0){
resister(JAN,Title,Price,URL);
}
cnt+=1;
}
filereader.close();
}catch(FileNotFoundException e){
System.out.println(e);
}catch(IOException e){
System.out.println(e);
}
//Entrée standard
Scanner scanner = new Scanner(System.in);
System.out.print("input item keywords> ");
String input = scanner.nextLine();
System.out.println(pink+input+end);
scanner.close();
//Recherche de produit
Search sh = new Search();
Search value = sh.search_item(input, HashTitle, HashPrice, HashURL);
System.out.println("api.Sortie xml");
}
public static void resister(String JAN,String Title, String Price, String URL){
HashTitle.put(JAN, Title);
HashPrice.put(JAN, Price);
HashURL.put(JAN, URL);
}
}
//Définition de la classe de recherche
//(search_Je souhaite avoir plusieurs valeurs de retour pour l'élément, je dois donc définir une classe)
class Search {
String keyword;
String result="";//Je viens de déclarer"null"Entrera
String result_JAN;
String result_Title;
String result_Price;
String result_URL;
public Search search_item(String input, HashMap<String, String> HashTitle, HashMap<String, String> HashPrice, HashMap<String, String> HashURL){
Search sh = new Search();
sh.keyword = input;
try {
FileWriter fw = new FileWriter("api.xml");
fw.write("<API_result>\n");
for (String key : HashTitle.keySet()){
if (HashTitle.get(key).contains(sh.keyword)){
sh.result_JAN = key;
sh.result_Title = HashTitle.get(key);
sh.result_Price = HashPrice.get(key);
sh.result_URL = HashURL.get(key);
sh.result = sh.result + sh.result_JAN+','+sh.result_Title+','+sh.result_Price+','+sh.result_URL+'\n';
fw.write("<Item>\n");
fw.write("<JAN>"+sh.result_JAN+"</JAN>\n");
fw.write("<Title>"+sh.result_Title+"</Title>\n");
fw.write("<Price>"+sh.result_Price+"</Price>\n");
fw.write("<URL>"+sh.result_URL+"</URL>\n");
fw.write("</Item>\n\n");
}
}
fw.write("</API_result>");
fw.close();
} catch (IOException ex) {
ex.printStackTrace();
}
//fw.close();
return sh;//Retour par nom de classe
}
}
Ligne de commande
Fichier de sortie
api.xml
<API_result>
<Item>
<JAN>4543112655110</JAN>
<Title>RG 1/144 (002)MS-06S Zaku II de Char</Title>
<Price>2100</Price>
<URL>https://item.rakuten.co.jp/kenbill/4543112655110/</URL>
</Item>
<Item>
<JAN>4543112341136</JAN>
<Title>HG 1/144 (034)Frappez la liberté GUNDAM</Title>
<Price>1344</Price>
<URL>https://item.rakuten.co.jp/kenbill/4543112341136/</URL>
</Item>
<Item>
<JAN>4573102568328</JAN>
<Title>HGUC 1/144 (108)RGZ-95C Risel(Machine du capitaine)</Title>
<Price>1848</Price>
<URL>https://item.rakuten.co.jp/kenbill/4573102568328/</URL>
</Item>
</API_result>
Terminé en renvoyant le résultat de la recherche (XML)! !!
Si vous faites la même chose avec Python, vous pouvez le faire en quelques secondes ...
-Lire la base de données (fichier) ・ Construction de type dictionnaire ・ Génération de classe ・ Correspondance de motifs ・ Exportation de fichier ・ XML