substring源码,substring
大家好,substring源码相信很多的网友都不是很明白,包括substring也是一样,不过没有关系,接下来就来为大家分享关于substring源码和substring的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
java windows记事本源代码
该项目代码包括两个文件:MainFrame.java和SelectTextFile.java。
(SelectTextFile.java的代码这里就不贴了,太长了。你百度HI我吧^_^)
补充说明:我这个里面没有“新建”,但其实新建也是一样调用那个SelectTextFile.java而已,而且,新建的时候更简单,只须按照路径调用File的.createNewFile()就可以了。具体我就不添加了。有疑问的话你可以百度HI我)
1.MainFrame.java代码:
package MyProject;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import java.awt.datatransfer.*;
import java.io.*;
public class MainFrame extends JFrame{
private static final long serialVersionUID= 1L;
private JPanel jContentPane= null;
private JMenuBar jJMenuBar= null;
private JMenu jMenu= null;
private JMenu jMenu1= null;
private JMenu jMenu2= null;
private JMenuItem jMenuItem= null;
private JMenuItem jMenuItem1= null;
private JMenuItem jMenuItem2= null;
private JMenuItem jMenuItem3= null;
private JLabel jLabel= null;
private JScrollPane jScrollPane= null;
private JTextArea jTextArea= null;
private JMenuItem jMenuItem4= null;
private JMenuItem jMenuItem5= null;
private JMenuItem jMenuItem6= null;
private JMenuItem jMenuItem7= null;
private static MainFrame myMainFrame=null;
private static String textstr="";///用于记录文本文件的路径
private File myFile=null;
private FileReader myrder=null;
private FileWriter mywr=null;
/**
* This is the default constructor
*/
public MainFrame(){
super();
initialize();
}
/**
* This method initializes this
*
*@return void
*/
private void initialize(){
this.setSize(412, 350);
this.setJMenuBar(getJJMenuBar());
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
this.addWindowListener(new java.awt.event.WindowAdapter(){
public void windowActivated(java.awt.event.WindowEvent e){
if(!textstr.equals("")){
try{
myFile=new File(textstr);
if(!myFile.exists()){
myFile.createNewFile();
}
myrder=new FileReader(myFile);
char[] mychar=new char[(int)myFile.length()];
myrder.read(mychar);
String tmp=new String(mychar);
jTextArea.setText(tmp);
myrder.close();
}
catch(Exception ee){
ee.printStackTrace();
}
}
}
public void windowClosing(java.awt.event.WindowEvent e){
System.exit(0);
}
});
this.setVisible(true);
myMainFrame=this;
}
/**
* This method initializes jContentPane
*
*@return javax.swing.JPanel
*/
private JPanel getJContentPane(){
if(jContentPane== null){
jLabel= new JLabel();
jLabel.setBounds(new Rectangle(15, 18, 65, 18));
jLabel.setText("文件内容:");
jContentPane= new JPanel();
jContentPane.setLayout(null);
jContentPane.add(jLabel, null);
jContentPane.add(getJScrollPane(), null);
}
return jContentPane;
}
/**
* This method initializes jJMenuBar
*
*@return javax.swing.JMenuBar
*/
private JMenuBar getJJMenuBar(){
if(jJMenuBar== null){
jJMenuBar= new JMenuBar();
jJMenuBar.add(getJMenu());
jJMenuBar.add(getJMenu1());
jJMenuBar.add(getJMenu2());
}
return jJMenuBar;
}
/**
* This method initializes jMenu
*
*@return javax.swing.JMenu
*/
private JMenu getJMenu(){
if(jMenu== null){
jMenu= new JMenu();
jMenu.setText("文件");
jMenu.add(getJMenuItem());
jMenu.add(getJMenuItem1());
jMenu.add(getJMenuItem2());
jMenu.add(getJMenuItem3());
}
return jMenu;
}
/**
* This method initializes jMenu1
*
*@return javax.swing.JMenu
*/
private JMenu getJMenu1(){
if(jMenu1== null){
jMenu1= new JMenu();
jMenu1.setText("编辑");
jMenu1.add(getJMenuItem4());
jMenu1.add(getJMenuItem5());
jMenu1.add(getJMenuItem6());
}
return jMenu1;
}
/**
* This method initializes jMenu2
*
*@return javax.swing.JMenu
*/
private JMenu getJMenu2(){
if(jMenu2== null){
jMenu2= new JMenu();
jMenu2.setText("帮助");
jMenu2.add(getJMenuItem7());
}
return jMenu2;
}
/**
* This method initializes jMenuItem
*
*@return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem(){
if(jMenuItem== null){
jMenuItem= new JMenuItem();
jMenuItem.setText("打开");
jMenuItem.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
MainFrame.this.myMainFrame.setEnabled(false);
SelectTextFile mysl=new SelectTextFile();
mysl.setVisible(true);
}
});
}
return jMenuItem;
}
/**
* This method initializes jMenuItem1
*
*@return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem1(){
if(jMenuItem1== null){
jMenuItem1= new JMenuItem();
jMenuItem1.setText("关闭");
jMenuItem1.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
try{
myFile=null;
}
catch(Exception ee){
ee.printStackTrace();
}
jTextArea.setText("");
}
});
}
return jMenuItem1;
}
/**
* This method initializes jMenuItem2
*
*@return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem2(){
if(jMenuItem2== null){
jMenuItem2= new JMenuItem();
jMenuItem2.setText("保存");
jMenuItem2.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
try{
String tmp=jTextArea.getText();
char[] mychar=tmp.toCharArray();
myFile.delete();
myFile.createNewFile();
mywr=new FileWriter(myFile);
mywr.write(mychar);
mywr.close();
}
catch(Exception ee){
ee.printStackTrace();
}
}
});
}
return jMenuItem2;
}
/**
* This method initializes jMenuItem3
*
*@return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem3(){
if(jMenuItem3== null){
jMenuItem3= new JMenuItem();
jMenuItem3.setText("退出");
jMenuItem3.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
System.exit(0);
}
});
}
return jMenuItem3;
}
/**
* This method initializes jScrollPane
*
*@return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane(){
if(jScrollPane== null){
jScrollPane= new JScrollPane();
jScrollPane.setBounds(new Rectangle(15, 46, 371, 225));
jScrollPane.setViewportView(getJTextArea());
}
return jScrollPane;
}
/**
* This method initializes jTextArea
*
*@return javax.swing.JTextArea
*/
private JTextArea getJTextArea(){
if(jTextArea== null){
jTextArea= new JTextArea();
}
return jTextArea;
}
/**
* This method initializes jMenuItem4
*
*@return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem4(){
if(jMenuItem4== null){
jMenuItem4= new JMenuItem();
jMenuItem4.setText("复制");
jMenuItem4.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
MainFrame.this.setClipboardText(MainFrame.this.getToolkit().getSystemClipboard(),jTextArea.getSelectedText());
}
});
}
return jMenuItem4;
}
/**
* This method initializes jMenuItem5
*
*@return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem5(){
if(jMenuItem5== null){
jMenuItem5= new JMenuItem();
jMenuItem5.setText("剪切");
jMenuItem5.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
MainFrame.this.setClipboardText(MainFrame.this.getToolkit().getSystemClipboard(),jTextArea.getSelectedText());
jTextArea.setText(jTextArea.getText().substring(0,jTextArea.getSelectionStart()));
}
});
}
return jMenuItem5;
}
/**
* This method initializes jMenuItem6
*
*@return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem6(){
if(jMenuItem6== null){
jMenuItem6= new JMenuItem();
jMenuItem6.setText("黏贴");
jMenuItem6.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
try{
jTextArea.setText(jTextArea.getText().substring(0,jTextArea.getSelectionStart()));
jTextArea.setText(jTextArea.getText()+(MainFrame.this.getClipboardText(MainFrame.this.getToolkit().getSystemClipboard())));
}
catch(Exception ee){
ee.printStackTrace();
}
}
});
}
return jMenuItem6;
}
/**
* This method initializes jMenuItem7
*
*@return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem7(){
if(jMenuItem7== null){
jMenuItem7= new JMenuItem();
jMenuItem7.setText("关于记事本");
jMenuItem7.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
////暂无代码!!
}
});
}
return jMenuItem7;
}
public static void main(String args[]){
new MainFrame();
}
public static MainFrame getMyMainFrame(){
return myMainFrame;
}
public static void setMyMainFrame(MainFrame myMainFrame){
MainFrame.myMainFrame= myMainFrame;
}
public static String getTextstr(){
return textstr;
}
public static void setTextstr(String textstr){
MainFrame.textstr= textstr;
}
protected static String getClipboardText(Clipboard clip) throws Exception{
Transferable clipT= clip.getContents(null);//获取剪切板中的内容
if(clipT!= null){
if(clipT.isDataFlavorSupported(DataFlavor.stringFlavor))//检查内容是否是文本类型
return(String)clipT.getTransferData(DataFlavor.stringFlavor);
}
return null;
}
protected static void setClipboardText(Clipboard clip, String writeMe){
Transferable tText= new StringSelection(writeMe);
clip.setContents(tText, null);
}
}//@jve:decl-index=0:visual-constraint="10,10"
Java怎么实现输入一个string表达式然后输出计算的结果
import java.io.*;
import java.util.*;
class BinaryTree{
BinaryTree left=null;
BinaryTree right=null;
char data=0;
}
public class Calculator{
String porder="";
public void postorder(BinaryTree bt){
//递归后序遍历二叉树
if(bt!=null){
postorder(bt.left);
postorder(bt.right);
porder+=bt.data;
}
}
public int calc(String s){
//计算后缀表达式的值
int i=0,len=0,a=0,b=0;
Stack stack=new Stack();
len=s.length();
for(;i<len;i++){
char c=s.charAt(i);
switch(c){
case'+':
a=(int)stack.pop();
b=(int)stack.pop();
stack.push(a+b);
break;
case'-':
b=(int)stack.pop();
a=(int)stack.pop();
stack.push(a-b);
break;
case'*':
a=(int)stack.pop();
b=(int)stack.pop();
stack.push(a*b);
break;
case'/':
b=(int)stack.pop();
a=(int)stack.pop();
stack.push((int)a/b);
break;
default:
//该字符是数字
stack.push(c-'0');
}
}
return stack.pop();
}
public BinaryTree create(String s){
//构造二叉树结点(递归)
int i=0,pos=0,len=0;
String l="",r="";
BinaryTree node=new BinaryTree();
len=s.length();
if(len==0) return null;
if(len==1){
//递归边界
node.data=s.charAt(0);
return node;
}
//去括号
while((pos=s.indexOf(")"))!=-1){
i=pos;
while((s.charAt(i)!='(')&&(i>0)) i--;
String sub=s.substring(i+1,pos);//括号中的表达式
porder="";
postorder(create(sub));//得到后缀表达式
int sum=calc(porder);//计算后缀表达式的值,替换原来括号中的表达式
s=s.substring(0,i)+String.valueOf(sum)+s.substring(pos+1);
len=s.length();//重新计算s的长度
}
//从后往前扫描得到的第一个优先级最低的运算符号的位置
pos=-1;
for(i=len-1;i>0;i--){
char c=s.charAt(i);
if((c=='+')||(c=='-')){
pos=i;
break;
}
else if(((c=='*')||(c=='/'))&&(pos==-1)) pos=i;
}
//在pos位置将s分为左右两部分,递归构造左右两个部分的二叉树
l=s.substring(0,pos);
r=s.substring(pos+1);
node.data=s.charAt(pos);
node.left=create(l);
node.right=create(r);
return node;
}
public static void main(String args[]) throws Exception{
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
String s=reader.readLine();
Calculator c=new Calculator();
BinaryTree bt=c.create(s);
c.postorder(bt);
System.out.println(c.calc(c.porder));
}
}
关于substring源码到此分享完毕,希望能帮助到您。