本帖最后由 许晓华 于 2013-1-7 08:56 编辑
滔哥误以为我没加阅读权限,不给加技术分。其实我是有加的。
原帖地址:http://bbs.itheima.com/thread-34854-1-2.html
题目分析:其实就是Excel单元格列的编号。(自己打开一个Excel文档看一下)
Z对应26 , AA对应27, ZZ对应702, AAA对应703.
这个题目,其实是蓝桥杯全国软件大赛2012决赛C高职第3题
代码如下: import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.FlowLayout;
import java.awt.Point;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class heima
{
private JFrame f=new JFrame("黑马训练营-12月26日技术分题-获取单元格位置");//Frame的标题
FlowLayout layout=new FlowLayout();//创建一个流布局管理器
JLabel lbl=new JLabel("请输入(行,列):");//整个标签出来
JTextField tf=new JTextField(10);//整个文本框出来,宽度的列数为10
JButton b=new JButton("转换");//新建一个按钮,单击时触发事件
JLabel lbl2=new JLabel();//另一个标签,显示结果的
public heima()//构造函数哦
{
f.setSize(300, 300);//设置Frame的大小
f.setLocation(new Point(100,300));//位置
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认关闭操作
f.setLayout(layout);//默认布局为居中对齐
f.add(lbl);//把这些控件整进Frame里,下同
f.add(tf);
f.add(b);
f.add(lbl2);
f.setVisible(true);//就是废弃的show啦,让Frame可见
}
public void init()//注册事件监听器
{
b.addActionListener(new OkListener());
}
class OkListener implements ActionListener//定义事件监听器类
{
//定义事件处理器方法,用于响应特定的事件
public void actionPerformed(ActionEvent e)
{
String s=tf.getText();//获得文本框输入的内容,赋值给字符串s
String []pos=s.split(",");//把输入的行,列,使用split方法以,作为分割符分开,存进字符串数组pos里
int t=Integer.parseInt(pos[1]);//数组第1个元素是列,转成整数
String result="";//存放最后的转换结果
while(t>0)//核心代码只有while语句里的两行
{
result=(char)((t-1)%26+'A')+result;
t=(t-1)/26;
}
result=pos[0]+result;//行号直接连接上
lbl2.setText(result);//将结果显示在第2个文本框上
}
}
public static void main(String args[])
{
new heima().init(); //生成一个匿名对象,调用init方法
}
}
|