'运行效果如上图,代码如下所示:
'判断中我将大小写字母均按规则进行了转换。
'原创,亲测可用,转发请说明出处。
Private Sub Command1_Click()
Dim a, b As String
a = Text1.Text
Dim i As Integer
i = Len(a)
Dim arr() As String
ReDim arr(1 To i)
Dim j As Integer
For j = 1 拆凳To i
b = Mid(a, j, 1)
If Asc(b) >= 97 And Asc(b) <= 118 Then
arr(j) = Chr(Asc(b) + 4)
End If
If Asc(b) = 119 Then
arr(j) = "a"
End If
If Asc(b) = 120 Then
arr(j) = "b"
End If
If Asc(b) = 121 Then
arr(j) = "c"
End If
If Asc(b) = 122 Then
arr(j) = "d"
End If
If Asc(b) >= 65 And Asc(b) <= 86 Then
arr(j) = Chr(Asc(b) + 4)
End If
If Asc(b) = 87 Then
arr(j) = "A"
End If
If Asc(b) = 88 Then
arr(j) = "B"
End If
If Asc(b) = 旅森旅89 Then
arr(j) = "C"
End If
If Asc(b) = 春模90 Then
arr(j) = "D"
End If
If Asc(b) < 65 Or Asc(b) > 122 Or (Asc(b) > 90 And Asc(b) < 97) Then
arr(j) = b
End If
Next j
Text2.Text = Join(arr, "")
End Sub
java编写显示文本的应用程序, 需要用到图形界面GUI编程技术.
步骤一: 需要搭建一个整体的外观, 调整布局和组件的位置.
主要需要使用的组件
JTextField 文本框组件: 用于当做地址栏, 填写文件的路径
JButton 按钮, 用于响应点击事件,根据地址栏的地址读取文件, 并且显示到文本域里
JTextArea 文本域, 用于显示文件里的字符串信搭胡息
JLabel 标签, 用于显示行数信息
布局: 使用边界布局BorderLayout,可以快速按照上下左右中伍枝册的位置快速布局.
步骤二: IO流,读取文本文件信息,并统计行数.
由于要按行读取,方便计算文件的行数, 所以使用Buffered 可以事半功倍.
核心代码如下
StringBuffer txtbuf=new StringBuffer()//用于保存文本信息int lines=0//用于计算行数
try {
BufferedReader br = new BufferedReader(new FileReader(fp))
String hasRead=null
while((hasRead=br.readLine())!=null){
txtbuf.append(hasRead+"\n")
lines++
}
br.close()//IO流用完记得关闭
} catch (Exception e) {
//当IO出现异常时,要进行提示
JOptionPane.showMessageDialog(this, "文件读取错误,确认文件存在,\n或者没有被其他文件打开.","IO错误",JOptionPane.ERROR_MESSAGE)
}
步骤三:整合代码
import java.awt.*import java.awt.event.*
import java.io.*
import javax.swing.*
public class ShowTextFrame extends JFrame implements 腔宏ActionListener{
JTextArea jta//该文本域用于显示文本信息
JTextField jtf//该文本框,用于填写文件路径
JLabel jl//该标签用于保存读取到的行数
JButton jbt//按钮
public ShowTextFrame() {
jtf = new JTextField(18)
jbt = new JButton("读取并显示")
jbt.addActionListener(this)
JPanel jp1 = new JPanel()
jp1.add(jtf)
jp1.add(jbt)
add(jp1,BorderLayout.NORTH)
jta = new JTextArea()
JScrollPane jsp = new JScrollPane(jta)//文本域添加到滚动面板
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)//垂直滚动条一直显示
add(jsp)
jl = new JLabel("文件共有0行")
JPanel jp2 = new JPanel()
jp2.add(jl)
add(jp2,BorderLayout.SOUTH)
setTitle("显示文本")//窗口标题
setSize(380, 320)
setLocationRelativeTo(null)//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE)
setVisible(true)
}
public void actionPerformed(ActionEvent e) {
if(jbt==e.getSource()){
String fp = jtf.getText().trim()
Info info = getInfo(fp)
jta.setText(info.txt)//把文本信息显示到文本域
jl.setText("文件共有"+info.lines+"行")//把行数显示显示到JLabel
}
}
public Info getInfo(String fp){//通过文件路径,获取文件信息(字符串信息和行数信息)
StringBuffer txtbuf=new StringBuffer()
int lines=0
try {
BufferedReader br = new BufferedReader(new FileReader(fp))
String hasRead=null
while((hasRead=br.readLine())!=null){
txtbuf.append(hasRead+"\n")
lines++
}
br.close()//IO流用完记得关闭
} catch (Exception e) {
//当IO出现异常时,要进行提示
JOptionPane.showMessageDialog(this, "文件读取错误,确认文件存在,\n或者没有被其他文件打开.","IO错误",JOptionPane.ERROR_MESSAGE)
}
return new Info(txtbuf.toString(), lines)
}
public static void main(String[] args) {
new ShowTextFrame()//创建窗口实例
}
}
class Info{//辅助类, 用于传递信息
String txt//文字信息
int lines// 行数信息
public Info(String txt, int lines) {
this.txt = txt
this.lines = lines
}
}
运行效果图
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)