import?java.util.Scanner;
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),清河企業(yè)網(wǎng)站建設(shè),清河品牌網(wǎng)站建設(shè),網(wǎng)站定制,清河網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,清河網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
class?Ca{
private?double?a;
private?double?b;
public?double?add(double?a,?double?b){
return?a?+?b;
}
public?double?jian(double?a,?double?b){
return?a?-?b;
}
public?double?chen(double?a,?double?b){
return?a?*?b;
}
public?double?chu(double?a,?double?b){
if(b?==?0){
System.out.println("除數(shù)不能為0");
return?(Double)?null;
}else{
return?a?/?b;
}
}
}
public?class?Test?{
public?static?void?main(String[]?args)?{
Scanner?sc?=?new?Scanner(System.in);
System.out.println("輸入第一個數(shù):");
double?a?=?sc.nextDouble();
System.out.println("輸入第二個數(shù):");
double?b?=?sc.nextDouble();
System.out.println("兩個數(shù)的和?:?"?+?new?Ca().add(a,?b));
System.out.println("兩個數(shù)的差?:?"?+?new?Ca().jian(a,?b));
System.out.println("兩個數(shù)的積?:?"?+?new?Ca().chen(a,?b));
System.out.println("兩個數(shù)的商?:?"?+?new?Ca().chu(a,?b));
}
}
44行:是重寫了對象的equals方法,是用來比較兩個對象是否相同的,按照上面的代碼就是,如果兩個person對象的name屬性和age屬性相同的話用equals比較時,則認為是相同的。
78行:sop是自己寫的一個方法,這個要自己看源碼是干什么的,里面的參數(shù)是一個boolean值,值的來源為arraylist的方法remove的返回。
關(guān)于remove可以參看java的API:簡單如下解釋
public boolean remove(Object o)從此列表中移除指定元素的單個實例(如果存在),此操作是可選的。更正式地說,如果列表包含一個或多個滿足 (o==null ? e==null : o.equals(e)) 的元素 e,則移除該元素。如果列表中包含指定的元素,則返回 true(或者等同于這種情況:如果列表隨調(diào)用的結(jié)果而發(fā)生改變,則返回 true)。
public class TestStar {
public static void main(String[] args) {
String star = "*";
for (int i = 0; i 5; i++) {
if (i == 0) {
System.out.print(" " + star);
System.out.println();
}
if (i == 1) {
for (int z = 0; z 4; z++) {
System.out.print(" " + star);
}
System.out.println();
}
if (i == 2) {
System.out.print(" ");
for (int x = 0; x 3; x++) {
System.out.print(" " + star);
}
System.out.println();
}
if (i == 3) {
for (int y = 0; y 2; y++) {
System.out.print(" " + star + " ");
}
}
}
}
}
是好使的 但是我沒找到畫五角星有什么規(guī)律(五角星好象不是正規(guī)圖形吧?)如果還有什么要求的話 補充問題(如果是用*填充所有的東西 不包括 “ ”的話 我可以重新再給你寫一個)
Scanner in = new Scanner(System.in);
定義接受從控制臺輸入
System.out.println("What is your name");
控制臺輸出:What is your name
String name = in.nextLine();
開始接收控制臺一行語句并賦值給name
System.out.println("How old are you");
控制臺輸出:How old are you
int age =in.nextLine();
開始接收控制臺一行語句并賦值給int(但是這里寫錯了,應該寫成int age =in.nextInt();
nextInt()是接收控制臺輸入的整數(shù),你的age定義為整數(shù)所以用這個,nextLIne接收的是一行語句,可以用String接收)
System.out.println("Hello"+name+",next year.you'll ,you"+(age+1));
輸出:hello后面跟你第一次輸入的一行語句next year.you'll ,you第二次輸入的數(shù)字加1
package com.regex;
import java.io.*;
import java.net.URLDecoder;
import java.util.regex.*;
public class Regex {
private int REMARK=0;
private int LOGIC=0;
private int PHYSIC=0;
boolean start=false;
/**
* @param args
*/
public static void main(String[] args) { //測試方法
// TODO Auto-generated method stub
Regex re=new Regex();
re.regCount("Regex.java");
System.out.println("remark Line: "+re.REMARK);
System.out.println("logic Line: "+re.LOGIC);
System.out.println("physic Line: "+re.PHYSIC);
}/**
* @author BlueDance
* @param s
* @deprecated count
*/
public void regCount(String s){
String url=null;
try {
url=URLDecoder.decode(this.getClass().getResource(s).getPath(),"UTF-8");
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
try {
BufferedReader br=new BufferedReader(new FileReader(new File(url)));
String s1=null;
while((s1=br.readLine())!=null){
PHYSIC++;
if(CheckChar(s1)==1){
REMARK++;
System.out.println("純注釋行:"+s1);
}
if(CheckChar(s1)==2){
LOGIC++;
REMARK++;
System.out.println("非純注釋行:"+s1);
}
if(CheckChar(s1)==3)
LOGIC++;
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
/**
*
* @param s
* @return int
* @version check s
*/
public int CheckChar(String s){
String s1=null;
if(s!=null)
s1=s.trim();
//System.out.println(regCheck(s1,re));
if(regCheck(s1,"(//.*)")) //判斷//開頭的為純注釋行
return 1;
if(regCheck(s1,"(.*[;{})] *//.*)")) //判斷不是//開頭的非純注釋行
return 2;
if(regCheck(s1,"(//*.*)")){ //判斷/*開頭的純注釋行
start=true;
return 1;
}
if(regCheck(s1,"(.*[;{})]//*.*)")){ //判斷不是/*開頭的非純注釋行
start=true;
return 2;
}
if(regCheck(s1,"(.* */*/)")){ //判斷*/結(jié)尾的純注釋行
start=false;
return 1;
}
if(regCheck(s1,"(.* */*/.*)")!strCheck(s1)){ //判斷不是*/結(jié)尾的非純注釋行
if(strCheck(s1)){
start=false;
return 2;
}
}
if(start==true) //狀態(tài)代碼,start即/*開始時start=true*/結(jié)束時為false
return 1;
return 3;//ssssllll
}//aeee
/**
*
* @param s
* @param re
* @return boolean
*/
public boolean regCheck(String s,String re){ //正則表達試判斷方法
return Pattern.matches(re,s);
}
public boolean strCheck(String s){ //中間有*/的字符判斷 此方法最關(guān)鍵
if(s.indexOf("*/")0){
int count=0;
String y[]=s.split("/*/");
boolean boo[]=new boolean[y.length];
for (int i = 0; i y.length-1; i++) {
char c[]=y[i].toCharArray();
for (int j = 0; j c.length; j++) {
if(c[j]=='\\'c[j+1]=='"'){
count++;
}
}
if(count%2==0){
if(countNumber("\"",y[i])%2!=0){
boo[i]=true;
}else{
boo[i]=false;
}
}else{
if(countNumber("\"",y[i])%2==0){
boo[i]=true;
}else{
boo[i]=false;
}
}
}
for(int i=0;iboo.length;i++){
if(!boo[i])
return false;
}
return true;
}
return false;
}
public int countNumber(String s,String y){ //此方法為我前面寫的字符串出現(xiàn)次數(shù)統(tǒng)計方法,不懂的可以看我前面的文章
int count=0;
String [] k=y.split(s);
if(y.lastIndexOf(s)==(y.length()-s.length()))
count=k.length;
else
count=k.length-1;
if(count==0)
System.out.println ("字符串\""+s+"\"在字符串\""+y+"\"沒有出現(xiàn)過");
else
return count;
return -1;
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GoodLucky extends JFrame implements ActionListener{
JTextField tf = new JTextField(); //實例化一個文本域
//設(shè)置兩個按鈕
JButton b1 = new JButton("開始");
JButton b2 = new JButton("停止");
boolean isGo = false;
//構(gòu)造函數(shù)
public GoodLucky(){
b1.setActionCommand("start");//在開始按鈕上設(shè)置一個動作監(jiān)聽 start
JPanel p = new JPanel(); //實例化一個可視化容器
//將兩個按鈕添加到可視化容器上面,用add方法
p.add(b1);
p.add(b2);
//在兩個按鈕上增加監(jiān)聽的屬性,自動調(diào)用下面的監(jiān)聽處理方法actionPerformed(ActionEvent e),如果要代碼有更好的可讀性,可用內(nèi)部類實現(xiàn)動作
//監(jiān)聽處理。
b1.addActionListener(this);
b2.addActionListener(this);
//將停止按鈕設(shè)置為不可編輯(即不可按的狀態(tài))
b2.setEnabled(false);
this.getContentPane().add(tf,"North"); //將上面的文本域放在面板的北方,也就是上面(上北下南左西右東)
this.getContentPane().add(p,"South"); //將可視化容器pannel放在南邊,也就是下面
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設(shè)置用戶在此窗體上發(fā)起 "close" 時默認執(zhí)行的操作,參數(shù)EXIT_ON_CLOSE是使用 System exit 方法退出應用程序。僅在應用程序中使用
this.setSize(300,200); //設(shè)置面板大小,寬和高
this.setLocation(300,300); //設(shè)置面板剛開始的出現(xiàn)的位置
Cursor cu = new Cursor(Cursor.HAND_CURSOR); //用指定名稱創(chuàng)建一個新的定制光標對象,參數(shù)表示手狀光標類型
this.setCursor(cu); //為指定的光標設(shè)置光標圖像,即設(shè)置光標圖像為上面所創(chuàng)建的手狀光標類型
this.setVisible(true); //將面板可視化設(shè)置為true,即可視,如果為false,即程序運行時面板會隱藏
tf.setText("welcome you! "); //設(shè)置面板的標題為歡迎
this.go(); //調(diào)用go方法
}
public void go(){
while(true){ //這里是死循環(huán),也就是說用戶不點擊停止按鈕的話他一直循環(huán)出現(xiàn)隨機數(shù),直到用戶點擊停止按鈕循環(huán)才能推出,具體流程在actionPerformed方法中控制。
if(isGo == true){ //上面所定義的isGo的初始值為false,所以程序第一次到此會跳過
String s = ""; //設(shè)置空字符串
for(int j = 1; j = 7;j++){ //產(chǎn)生7個隨機數(shù)
int i = (int)(Math.random() * 36) + 1;//每個隨機數(shù)產(chǎn)生方式,這里定義靈活,可以自由定義隨機數(shù)產(chǎn)生的方式
if(i 10){
s = s + " 0" + i; //如果產(chǎn)生的隨機數(shù)小于10的話做處理:這里就牽扯到一個重要的概念,簡單敘述一下:
/*
當一個字符串與一個整型數(shù)項相加的意思是連接,上面的s = s + " 0" + i的意思是字符串s鏈接0再連接整型i值,而不會導致0和整型的i相加,
產(chǎn)生的效果為s0i,由于s為空字符串(上面定義過的),所以當i小于零時,在個位數(shù)前面加上0,比如產(chǎn)生的隨機數(shù)i為7的話,顯示效果為 07.
*/
}else{
s = s + " " + i; //如果產(chǎn)生的隨機數(shù)比10打的話,那么加上空格顯示,即數(shù)字和數(shù)字之間有個空格
}
//以上循環(huán)循環(huán)七次,以保證能出現(xiàn)7個隨機數(shù)
}
tf.setText(s); //將產(chǎn)生的隨機數(shù)全部顯示在文本域上,用文本域?qū)ο髏f調(diào)用它的設(shè)置文本的方法setText(String)實現(xiàn)。
}
//以下為線程延遲
try{
Thread.sleep(10); //線程類同步方法sleep,睡眠方法,括號里的單位為ms。
}catch(java.lang.InterruptedException e){
e.printStackTrace(); //異常捕獲,不用多說。
}
}
}
//以下是上面設(shè)置的事件監(jiān)聽的具體處理辦法,即監(jiān)聽時間處理方法,自動調(diào)用
public void actionPerformed(ActionEvent e){ //傳入一個動作事件的參數(shù)e
String s = e.getActionCommand(); //設(shè)置字符串s來存儲獲得動作監(jiān)聽,上面的start
/*
以下這個條件語句塊的作用為:用戶點擊開始后(捕獲start,用方法getActionCommand()),將命令觸發(fā)設(shè)置為true,從而執(zhí)行上面的go方法中的循環(huán)體(因為循環(huán)體中要求isGo參數(shù)為true,而初始為false)。
執(zhí)行循環(huán)快產(chǎn)生隨機數(shù),并將開始按鈕不可編輯化,而用戶只可以使用停止按鈕去停止。如果用戶按下停止時,也就是沒有傳入?yún)?shù)“start”的時候,
執(zhí)行else語句塊中的語句,isGo設(shè)置為false,將不執(zhí)行上面go中的循環(huán)語句塊,從而停止產(chǎn)生隨機數(shù),并顯示,并且把開始按鈕設(shè)置為可用,而把
停止按鈕設(shè)置為不可用,等待用戶按下開始再去開始新一輪循環(huán)產(chǎn)生隨機數(shù)。
*/
if(s.equals("start")){ //如果捕獲到start,也就是用戶觸發(fā)了動作監(jiān)聽器,那么下面處理
isGo = true; //設(shè)置isGo為true
b1.setEnabled(false); //將開始按鈕設(shè)置為不可用
b2.setEnabled(true); //將停止按鈕設(shè)置為可用
}else{
isGo = false; //將isGo設(shè)置為false,isGo為循環(huán)標志位
b2.setEnabled(false); //設(shè)置停止按鈕為不可用(注意看是b2,b2是停止按鈕)
b1.setEnabled(true); //設(shè)置開始按鈕為可用
}
}
public static void main(String[] args){
new GoodLucky(); //產(chǎn)生類的實例,執(zhí)行方法
}
}
不知道是否理解對了你的意思,大概寫了一下:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.io.StringWriter;
public class FileReadAndWrite {
private static final int DEFAULT_BUFFER_SIZE = 1024;
public static void main(String[] args) {
File file = new File("E:/workspace/FileIOTest/src/a.txt");
String str = file2String(file, "UTF-8");
str = str.replace('d', 'f');
string2File(str,"E:/workspace/FileIOTest/src/b.txt");
System.out.println("處理完畢");
}
/**
* 文本文件轉(zhuǎn)換為指定編碼的字符串
*
* @param file
* 文本文件
* @param encoding
* 編碼類型
* @return 轉(zhuǎn)換后的字符串
* @throws IOException
*/
public static String file2String(File file, String encoding) {
InputStreamReader reader = null;
StringWriter writer = new StringWriter();
try {
if (encoding == null || "".equals(encoding.trim())) {
reader = new InputStreamReader(new FileInputStream(file),
encoding);
} else {
reader = new InputStreamReader(new FileInputStream(file));
}
// 將輸入流寫入輸出流
char[] buffer = new char[DEFAULT_BUFFER_SIZE];
int n = 0;
while (-1 != (n = reader.read(buffer))) {
writer.write(buffer, 0, n);
}
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (reader != null)
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 返回轉(zhuǎn)換結(jié)果
if (writer != null)
return writer.toString();
else
return null;
}
/**
* 將字符串寫入指定文件(當指定的父路徑中文件夾不存在時,會最大限度去創(chuàng)建,以保證保存成功!)
*
* @param res
* 原字符串
* @param filePath
* 文件路徑
* @return 成功標記
*/
public static boolean string2File(String res, String filePath) {
boolean flag = true;
BufferedReader bufferedReader = null;
BufferedWriter bufferedWriter = null;
try {
File distFile = new File(filePath);
if (!distFile.getParentFile().exists())
distFile.getParentFile().mkdirs();
bufferedReader = new BufferedReader(new StringReader(res));
bufferedWriter = new BufferedWriter(new FileWriter(distFile));
char buf[] = new char[1024]; // 字符緩沖區(qū)
int len;
while ((len = bufferedReader.read(buf)) != -1) {
bufferedWriter.write(buf, 0, len);
}
bufferedWriter.flush();
bufferedReader.close();
bufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
flag = false;
return flag;
} finally {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return flag;
}
}