Swing应用实现,输入一串数字,查找指定数字,并输出指定数字的位置,若该数字出现多次,所有位置都要输出。
代码如下。
import java.awt.event.*;
import java.awt.*;
import java.util.*;
import javax.swing.*;
public class search extends JFrame implements ActionListener{
JTextField textfield1,textfield2,textfield3;
JLabel label1,label2,label3;
JButton button;
Container c;
public search(){
c=getContentPane();
textfield1=new JTextField();
textfield2=new JTextField();
textfield3=new JTextField();
label1=new JLabel("Search Number:");
label2=new JLabel("Main Number:");
label3=new JLabel("Index Number:");
button=new JButton("GO");
button.addActionListener(this);
c.setLayout(new GridLayout(2,4));
c.add(label1);
c.add(textfield1);
c.add(label2);
c.add(textfield2);
c.add(label3);
c.add(textfield3);
c.add(button);
}
@Override
public void actionPerformed(ActionEvent e) {
int i =0;
int p=0;
int count=0;
//int iarry[]=new int[10];
ArrayList<String> iarry=new ArrayList<String>(); //创建arraylist集合,用集合因为集合比较灵活。
StringBuffer sb=new StringBuffer();
String search=textfield1.getText(); //获取需要查找的数字。
String main=textfield2.getText(); //获取被查找的字符串。
StringTokenizer stk=new StringTokenizer(main,","); //StringTokenizer把逗号设为分界符。
if(e.getSource()==button){ //监听器的具体实现。
ArrayList<String> sarry=new ArrayList<String>();
while(stk.hasMoreTokens()){ //把被查找的字符串用逗号作为分界符,挨个存入字符串数组中。
//sarry[i++]=stk.nextToken();
sarry.add(stk.nextToken());
}
for(int n=0;n<sarry.size();n++){ //把需要查找的数字/字母/字符串 与被查找的字符串 进行比较。
if(search.equals(sarry.get(n))){ //如果相同,则把位置存入到另一个字符数组中。
// iarry[p++]=count;
iarry.add(String.valueOf(count));
}
count++;
}
for(int j=0;j<iarry.size();j++){ //把存有查到的字符串的位置的数组 输入到StringBuffer中。
if(j==iarry.size()-1){ //且用逗号隔开,最后一个不能带逗号。
sb.append(iarry.get(j));
}
else{
sb.append(iarry.get(j)+",");
}
}
String s=sb.toString(); //把StringBuffer转换成String,然后在IndexNumber栏中输出。
textfield3.setText(s);
}
}
public static void main(String[] args) {
search s= new search();
s.setTitle("search");
s.setSize(500, 150);
s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
s.setVisible(true);
}
}
这个程序同样可以查找字符串。
List接口
实现类
List<String> list=new ArrayList<String>();
List<String> list=new LinkedList<String>();
List接口常用方法。
void add(int index,Object obj) 指定索引位置添加对象。
boolean addAll(int index,Collection coll) 指定位置添加指定的集合对象。
Object remove(int index) 移除指定位置的对象。
Object get(int index) 过去指定位置的对象。
int indexOf(Object obj) 返回对象第一次出现的索引位置。 失败则返回-1.
ListIterator ListIterator() 获取包含所有对象的ListIterator迭代器。