[Java] Erstellen Sie so etwas wie eine Produktsuch-API

Einführung

Zum ersten Mal ** Java **

Wie kann ich ** Java ** (oder besser die Codierung selbst) effizient studieren?

Die Antwort ist einfach: ** Erstellen Sie die Anwendung, die Sie erstellen möchten! **Ich denke.

Ich denke, dass der effizienteste Stil darin besteht, die erforderlichen Methoden nach Bedarf zu überprüfen und zu implementieren.

Zweck

Wenn Sie das Schlüsselwort des gewünschten Produkts eingeben, z. B. eine allgemeine EC-Site Ein System, das Treffer-Suchergebnisse zurückgibt (** JAN-Code von Produkt, Titel, Preis, URL zur Seite **) machen

Vorbereitung

Sie müssen eine Datenbank erstellen

Diesmal habe ich versucht, eine solche Datenbank sofort zu erstellen

test.csv


JAN,Title,Price,URL
4543112341136,HG 1/144 (034)Streikfreiheit GUNDAM,1344,https://item.rakuten.co.jp/kenbill/4543112341136/
4543112655110,RG 1/144 (002)MS-06S Char's Zaku II,2100,https://item.rakuten.co.jp/kenbill/4543112655110/
4543112752994,MG 1/100 Duell 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 Vollrüstung Einhorn Gundam Ver.ka,6720,https://item.rakuten.co.jp/kenbill/4543112728180/
4573102568328,HGUC 1/144 (108)RGZ-95C Risel(Kapitänsmaschine),1848,https://item.rakuten.co.jp/kenbill/4573102568328/

Von links *** JAN-Code, Produkttitel, Preis, Link zur Produktseite ***

Wenn ein Benutzer beispielsweise nach "** Gundam " sucht, wird eine Produktliste (JAN-Code, Produkttitel, Preis, URL), die " Gundam **" im Produkttitel enthält, als Suchergebnis zurückgegeben. Es ist eine Herstellung.

Code (fertige Version)

Letzte Aktualisierung: 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;//Standardeingabe
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[]){
        //Datei lesen
        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);
        }
        //Standardeingabe
        Scanner scanner = new Scanner(System.in);
        System.out.print("input item keywords> ");
        String input = scanner.nextLine();
        System.out.println(pink+input+end);
        scanner.close();

        //Produkt Suche
        Search sh = new Search();
        Search value = sh.search_item(input, HashTitle, HashPrice, HashURL);
        System.out.println("api.XML ausgeben");
    }

    public static void resister(String JAN,String Title, String Price, String URL){
         HashTitle.put(JAN, Title);
         HashPrice.put(JAN, Price);
         HashURL.put(JAN, URL);
    }
}


//Suchklassendefinition
//(search_Ich möchte mehrere Rückgabewerte für das Element haben, daher muss ich eine Klasse definieren)
class Search {
    String keyword;
    String result="";//Ich habe es gerade erklärt"null"Wird eintreten
    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;//Rückgabe nach Klassennamen
    }
}

Lauf

Befehlszeile スクリーンショット 2019-04-20 21.35.19.png

Ausgabedatei

api.xml


<API_result>
<Item>
<JAN>4543112655110</JAN>
<Title>RG 1/144 (002)MS-06S Char's Zaku II</Title>
<Price>2100</Price>
<URL>https://item.rakuten.co.jp/kenbill/4543112655110/</URL>
</Item>

<Item>
<JAN>4543112341136</JAN>
<Title>HG 1/144 (034)Streikfreiheit 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(Kapitänsmaschine)</Title>
<Price>1848</Price>
<URL>https://item.rakuten.co.jp/kenbill/4573102568328/</URL>
</Item>
</API_result>

Abgeschlossen durch Rückgabe des Suchergebnisses (XML)! !!

Wenn Sie dasselbe mit Python tun, können Sie es in Sekundenschnelle tun ...

Fortschrittsnotiz

-Lesen Sie die Datenbank (Datei) ・ Aufbau des Wörterbuchtyps ・ Klassengenerierung ・ Mustervergleich ・ Dateiexport ・ XML

Recommended Posts

[Java] Erstellen Sie so etwas wie eine Produktsuch-API
Java lernen: Verwenden Sie Timer, um so etwas wie einen Bomben-Timer zu erstellen
Implementieren Sie so etwas wie einen Stack in Java
[Java] Neue Spezifikation Implementierung der Yahoo! -Produktsuch-API
[Java] Erstellen Sie einen Filter
[Java] Ich habe versucht, die Yahoo API-Produktsuche zu implementieren
Erstellen Sie eine Java-Methode [Memo] [java11]
[Java] Erstellen Sie eine temporäre Datei
Erstellen Sie einen SlackBot mit AWS Lambda & API Gateway in Java
Erstellen Sie ein Java-Projekt mit Eclipse
Erstellen Sie eine benannte SkipList in Java, die wie eine nach Redis sortierte Menge aussieht
Lassen Sie uns eine TODO-App in Java 6 erstellen. Implementierung der Suchfunktion
Erstellen Sie mit JavaScript eine leistungsstarke Aufzählung mit Feldern und Methoden wie Java
Erstellen Sie eine Restaurant-Such-App mit der IBM Watson + Guru Navi-API (mit Quelle).
[Java] Erstellen und Anwenden eines Folienmasters
Machen Sie so etwas wie Javas Enum mit Typescript
So erstellen Sie eine Zip-Datei beim Gruppieren von Datenbanksuchergebnissen in Java
Lassen Sie uns eine Java-Entwicklungsumgebung erstellen (Aktualisierung)
Erstellen Sie eine TODO-App in Java 7 Create Header
Erstellen Sie mit Grape einen RESTful-API-Service
Erstellen Sie eine API mit Retrofit2, Okhttp3 und Gson (Java).
Erstellen Sie mit Spring Boot eine einfache Such-App
Erstellen Sie eine CSR mit erweiterten Informationen in Java
Erstellen Sie mit Java + MySQL ein einfaches Bulletin Board
Erstellen wir eine REST-API mit WildFly Swarm.
[Windows] [IntelliJ] [Java] [Tomcat] Erstellen Sie mit IntelliJ eine Umgebung für Tomcat 9
Lassen Sie uns mit Javas Timer einen zeitgesteuerten Prozess erstellen! !!
Versuchen Sie, ein Bulletin Board in Java zu erstellen
[Java] Erstellen Sie eine Sammlung mit nur einem Element
Lassen Sie uns mit Java ein supereinfaches Webframework erstellen
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [Einführung]
Erstellen Sie Scala Seq aus Java, machen Sie Scala Seq zu einer Java-Liste
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Einführung]
[Java] Holen Sie sich Bilder mit der Google Custom Search API
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [99. Mod-Ausgabe]
Erstellen Sie einen Web-API-Server mit Spring Boot
Java Stream API
Etwas über Java
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [0. Basisdatei]
Erstellen Sie eine Java-Entwicklungsumgebung mit jenv auf Ihrem Mac
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [4. Tools hinzufügen]
Erstellen Sie ein Docker-Image, um eine einfache Java-App auszuführen
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
Ich möchte so etwas wie "cls" in Java machen
Rufen Sie die Amazon Product Advertising API 5.0 (PA-API v5) in Java auf
[Java] Lass uns einen Minecraft Mod 1.14.4 erstellen [5. Rüstung hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [Extra Edition]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [7. Fortschritt hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [6. Rezept hinzufügen]
[Anfänger] Erstellen Sie ein wettbewerbsfähiges Spiel mit grundlegenden Java-Kenntnissen
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Element hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Basisdatei]
Java / Twitter-Klon- / Aufgabenverwaltungssystem (1) Erstellen Sie eine Datenbank
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [1. Element hinzufügen]