/********************************/ /* */ /*  文字列の検索   */ /* */ /* 1998/ 9/13 宍戸 輝光 */ /* */ /********************************/ import java.awt.*; public class search1 extends java.applet.Applet { Panel p1,p2; Label textL,keyL,resL; TextField textF,keyF; Button searchB; public void start(){ textL=new Label("Text"); keyL=new Label("Key"); textF=new TextField(24); keyF=new TextField(8); p1=new Panel(); GridBagLayout gbl=new GridBagLayout(); GridBagConstraints gbc=new GridBagConstraints(); gbc.fill=GridBagConstraints.NONE; gbc.anchor=GridBagConstraints.WEST; gbc.insets=new Insets(2,2,2,2); p1.setLayout(gbl); gbc.gridy=0; gbc.gridx=0; gbl.setConstraints(textL,gbc); p1.add(textL); gbc.gridx=1; gbl.setConstraints(textF,gbc); p1.add(textF); gbc.gridy=1; gbc.gridx=0; gbl.setConstraints(keyL,gbc); p1.add(keyL); gbc.gridx=1; gbl.setConstraints(keyF,gbc); p1.add(keyF); gbc.gridy=2; resL=new Label("-1"); gbc.gridx=1; gbl.setConstraints(resL,gbc); p1.add(resL); setLayout(new BorderLayout()); add("Center",p1); p2=new Panel(); searchB=new Button("Search!"); p2.add(searchB); add("South",p2); } public boolean action(Event evt,Object What) { if (evt.target==searchB) { int n; n=search(textF.getText(),keyF.getText()); if (n>=0) { /* 見つかれば結果を表示 */ textF.select(n,n+keyF.getText().length()); resL.setText(String.valueOf(n+1)); } else /* 見つからない場合 */ resL.setText(String.valueOf(n)); return true; } return false; } private int search(String textS,String keyS) { char text[],key[]; int i,j,textN,keyN; textN=textS.length(); /* 検索対象文字列の長さ */ keyN=keyS.length(); /* キー文字列の長さ */ if (keyN==0) return -1; text=textS.toCharArray(); /* 文字列を配列に */ key=keyS.toCharArray(); for (i=0;i