首页 > 解决方案 > java方法在数组中搜索字符串

问题描述

我已经搜索了几个小时,试图找到一种方法以字符串格式输入 isbn 编号,例如“97-123-43564-43-3”,并找到书名和存储量。我不明白如何用字符串搜索数组。FindHandler 在 Gui 第 113 行。数组名称是 books。非常抱歉长代码。

非常感谢任何花时间提供帮助的人

public class Book {
    int storage;
    private String isbn;
    private String title;
    //private static int counter = 1000;

    public Book( String title, String isbn, int initStorage){
        this.title = title;
        this.isbn= isbn;
        this.storage = storage;
    }

    public void returnB(int amount){
        this.storage += amount;
    }

    public void lend(int amount){
        if(storage > amount){
            this.storage -= amount;
        }
    }

    public int storage(){
        return storage;
    }

    public String isbn(){
        return isbn;
    }

    public String title(){
        return title;
    }
}

库:这里是数组的位置

import java.util.*;

public class Library {
    private final ArrayList books = new ArrayList();

    /**
     * @param args the command line arguments
     */
    public void addBook(Book b){
    books.add(b);
    }


    public Book findBook(String isbn){

        for(int i=0; i<books.size() ; i++){
        Book temp = (Book)books.get(i);

        if(temp.isbn()==isbn){
        return temp;
            }
        }
        return null;
    }

}

图书馆系统

public class LibrarySystem {

    public static void main(String[] args){

        Book b1 = new Book ("Basic book","12-445-2346-23",5);

        libraryN.addBook(b1);

        Library libraryN = new Library();

        Gui gui = new Gui(libraryN);

    }
}

Gui line 113 下面是 FindHandler

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class Gui {

private JFrame frame = new JFrame("Bibblan");
private JPanel background, centerPanel, southPanel;
private JLabel l_isbn,l_title, l_reclaim,l_lend,l_storage;
private JTextField tf_isbn,tf_title, tf_reclaim,tf_lend,tf_storage;
private JButton b_find,b_reclaim,b_lend,b_clear,b_newBook,b_save,b_load;
private Book findB;
private Library libraryN;


public Gui(Library l){
libraryN = l;
background = new JPanel();
background.setLayout((new BorderLayout()));
centerPanel = new JPanel();
background.setBorder(BorderFactory.createLineBorder(Color.BLUE,9,false));

centerPanel.setLayout((new GridLayout(5,2)));
southPanel = new JPanel();
southPanel.setLayout((new GridLayout(3,2)));

b_find = new JButton("find");
b_reclaim = new JButton("return");
b_lend = new JButton("lend");
b_clear = new JButton("clear");
b_newBook = new JButton("Add");
b_save = new JButton("save");
b_load = new JButton("load");

southPanel.add(b_find);
southPanel.add(b_reclaim);
southPanel.add(b_lend);
southPanel.add(b_clear);
southPanel.add(b_newBook);
southPanel.add(b_save);
southPanel.add(b_load);

l_isbn = new JLabel("isbn:");
l_title = new JLabel("title:");
l_reclaim = new JLabel("return:");
l_lend = new JLabel("lend:");
l_storage = new JLabel("storage:");

tf_isbn = new JTextField(12);
tf_title = new JTextField(12);
tf_reclaim = new JTextField(12);
tf_lend = new JTextField(12);
tf_storage = new JTextField(12);

centerPanel.add(l_isbn);
centerPanel.add(tf_isbn);
centerPanel.add(l_title);
centerPanel.add(tf_title);
centerPanel.add(l_reclaim);
centerPanel.add(tf_reclaim);
centerPanel.add(l_lend);
centerPanel.add(tf_lend);
centerPanel.add(l_storage);
centerPanel.add(tf_storage);

frame.setContentPane(background);
frame.pack();
frame.setVisible(true);

background.add(centerPanel,BorderLayout.CENTER);
background.add(southPanel,BorderLayout.SOUTH);

SaveHandler SL = new SaveHandler();
ClearHandler cl = new ClearHandler();
FindHandler fh = new FindHandler();
LendHandler LE = new LendHandler();
ReclaimHandler RE = new ReclaimHandler();
AddHandler AH = new AddHandler();
LoadHandler LO = new LoadHandler();

this.b_save.addActionListener(SL);
this.b_clear.addActionListener(cl);
this.b_lend.addActionListener(LE);
this.b_reclaim.addActionListener(RE);
this.b_find.addActionListener(fh);
this.b_newBook.addActionListener(AH);
this.b_load.addActionListener(LO);
this.libraryN = libraryN;

    }
private class ClearHandler implements ActionListener{
    public void actionPerformed(ActionEvent ae){
        System.out.println("clear");
        tf_isbn.setText("");
        tf_title.setText("");
        tf_storage.setText("");
        tf_lend.setText("");
        tf_reclaim.setText("");
    }
}
private class FindHandler implements ActionListener{
    public void actionPerformed(ActionEvent ae){
       System.out.println("find");
       String isbn = tf_isbn.getText();
    }
}
private class LendHandler implements ActionListener{
    public void actionPerformed(ActionEvent ae){
        System.out.println("lend");

    }
}
private class ReclaimHandler implements ActionListener{
    public void actionPerformed(ActionEvent ae){
        System.out.println("reclaim");
    }
}
private class AddHandler implements ActionListener{
    public void actionPerformed(ActionEvent ae){
        System.out.println("add");
        String title = tf_title.getText();
        String isbn = tf_isbn.getText();
        int amount = Integer.valueOf(tf_storage.getText());
        Book newBook = new Book(title,isbn, amount);
        libraryN.addBook(newBook);
        tf_reclaim.setText("");
        tf_storage.setText("" + newBook.storage);
    }
}
private class LoadHandler implements ActionListener{
    public void actionPerformed(ActionEvent ae){
        System.out.println("load");
        try{
        ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(new FileInputStream("library.srz")));
        libraryN=(Library)in.readObject();

        in.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}
private class SaveHandler implements ActionListener{
    public void actionPerformed(ActionEvent ae){
        System.out.println("save");
        try{
            ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("library.srz")));
            out.writeObject(libraryN);
            out.close();

        }catch(Exception e){
            e.printStackTrace();
        }
    }

}


}

标签: javaarraysstringarraylistmethods

解决方案


推荐阅读