转义字符
概念:通过 \ 来转变后面字母或符号的含义。
举一些例子:
\b:退格
\n:换行
\t:制表符,相当于tab键
\r:回车
\\:表示反斜杠
\':表示单引号
\":表示双引号
转义字符的作用有两个 :第一个是像“<”和“>”这类符号已经用来表示HTML标签,因此就不能直接当做文本中的符号来使用。为了在HTML文档中使用这些符号,就需要定义它的转义字符串。当解释程序遇到这类字符串时就把它解释为真实的字符。在输入转义字符串时,要严格遵守字母大小写的规则。第二个是,有些字符在ASCII字符集中没有定义,因此需要使用转义字符串来表示
比如在写html的时候,如果想让两个字符之间多几个空格,你拍几个空格,发现浏览器查看只有一个,但你要写几个\b 就没问题了
import java.awt.*import java.awt.event.*
import javax.swing.*
class General extends JFrame implements ActionListener
{
String args[]={"退格","总清","清零","/","1","2","3","+","4","5","6","-","7","8","9","*","0","+/-",".","="}
JButton jb[]=new JButton[20]
JPanel p1=new JPanel()
JTextField jtf=new JTextField(15)
double num1,num2,jieguo
char c,ch
public General()
{
Container ct=getContentPane()
jtf.addKeyListener(new KA())
jtf.setHorizontalAlignment(JTextField.RIGHT)
ct.add(jtf,"North")
p1.setLayout(new GridLayout(5,4))
for(int i=0i<20i++)
{
jb[i]=new JButton(args[i])
jb[i].addActionListener(this)
p1.add(jb[i])
}
ct.add(p1)
pack()
setVisible(true)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
}
public static void main(String args[])
{
new General()
}
public void actionPerformed(ActionEvent e)// 监听按键
{
String str=e.getActionCommand().trim()
if("0123456789.".indexOf(str)!=-1)
{
if(jtf.getText().equals("0"))jtf.setText(null)
jtf.setText(jtf.getText()+str)
return
}
if("+-*/".indexOf(str)!=-1)
{
num1=Double.parseDouble(jtf.getText())
c=str.charAt(0)
jtf.setText(null)
return
}
else if(str.equals("="))
{
num2=Double.parseDouble(jtf.getText())
switch(c)
{
case '+': jieguo=num1+num2break
case '-': jieguo=num1-num2break
case '*': jieguo=num1*num2break
case '/': jieguo=num1/num2break
}
jtf.setText(Double.toString(jieguo))
}
else if(str.equals("+/-"))
{
if(jtf.getText().isEmpty()==false)
{
Double lnum=-(Double.parseDouble(jtf.getText()))
jtf.setText(Double.toString(lnum))
}
else
{
jtf.setText("-")
}
}
else if(str.equals("清空"))
{
jtf.setText(null)
}
else if(str.equals("清零"))
{
jtf.setText("0")
}
else if(str.equals("退格"))
{
jtf.setText(jtf.getText().substring(0,jtf.getText().length()-1))
}
}
class KA extends KeyAdapter // 监听键盘
{
public void keyPressed(KeyEvent e)
{
char ch=e.getKeyChar()
if("+-*/".indexOf(ch)!=-1)
{
num1=Double.parseDouble(jtf.getText())
c=ch
}
if(ch=='='|ch==e.VK_ENTER)
{
num2=Double.parseDouble(jtf.getText())
switch(c)
{
case '+': jieguo=num1+num2break
case '-': jieguo=num1-num2break
case '*': jieguo=num1*num2break
case '/': jieguo=num1/num2break
}
}
}
public void keyReleased(KeyEvent e)
{
char ch=e.getKeyChar()
if("+-*/".indexOf(ch)!=-1)
{
jtf.setText(null)
}
if(ch=='='|e.getKeyCode()==e.VK_ENTER)
{
jtf.setText(Double.toString(jieguo))
}
}
}
}