本文目錄一覽:
Java代碼修改
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.util.Random;
import javax.swing.JFrame;
class RainCanvas extends Canvas implements Runnable{
private int width, height;
private Image offScreen; // 緩衝圖片
private char[][] charset; // 隨機字符集合
private int[] pos; // 列的起始位置
private Color[] colors = new Color[25]; // 列的漸變顏色
public RainCanvas(int width, int height) {
this.width = width;
this.height = height;
// 生成ASCII可見字符集合
//創建一個新的隨機器
Random rand = new Random();
//width/10為字符雨屏幕的寬度 height/10為字符雨屏幕的長度
//隨機字符數組
charset = new char[width / 10][height / 10];
for (int i = 0; i charset.length; i++) {
for (int j = 0; j charset[i].length; j++) {
//nextInt(int n) 返回一個偽隨機數,它是從此隨機數生成器的序列中取出的、在 0(包括)和指定值(不包括)之間均勻分佈的 int值。
//48–144代表鍵盤上的字母 符號 數字
//為charset數組的每個元素取值
charset[i][j] = (char) (rand.nextInt(96) + 48); }
}
// 隨機化列起始位置
pos = new int[charset.length];
for (int i = 0; i pos.length; i++) {
pos[i] = rand.nextInt(pos.length);
}
// 生成從黑色到綠色的漸變顏色,最後一個保持為白色
for (int i = 0; i colors.length – 1; i++) {
//顏色漸變
colors[i] = new Color(0, 255 / colors.length * (i + 1), 0); }
//設置最底下一個的字符的顏色 0 0 255 藍色 255 0 0 紅色 255 255 255 白色 0 255 0 綠色
colors[colors.length – 1] = new Color(0, 0, 255);
setBackground(Color.black);
setSize(width, height);
setVisible(true);
}
public void startRain() {
new Thread(this).start();
}
public void drawRain() {
if (offScreen == null) {
return;
}
// Random rand = new Random();
//getGraphice()創建供繪製閉屏圖像使用的圖形上下文
Graphics g = offScreen.getGraphics();
//通過使用當前繪圖表面的背景色進行填充來清除指定的矩形。
g.clearRect(0, 0, width, height);
//將此圖形上下文的字體設置為指定字體。使用此圖形上下文的所有後續文本操作均使用此字體。
g.setFont(new Font(“Arial”, Font.PLAIN, 14));
//
for (int i = 0; i charset.length; i++) {
//int speed = rand.nextInt(3);
for (int j = 0; j colors.length; j++) {
//去掉j只顯示藍色的一個字符 去掉charset[i].length顯示黑屏
int index = (pos[i] + j) % charset[i].length;
// 將此圖形上下文的當前顏色設置為指定顏色。
g.setColor(colors[j]);
//使用此圖形上下文的當前字體和顏色繪製由指定字符數組給定的文本
g.drawChars(charset[i], index, 1, i * 10, index * 10);
}
pos[i] = (pos[i]+2 ) % charset[i].length;
}
}
@Override
public void update(Graphics g) {
paint(g);
}
public void run() {
while (true) {
drawRain();
repaint();
try {
Thread.sleep(50); // 可改變睡眠時間以調節速度
}
catch (InterruptedException e) {
System.out.println(e);
}
}
}
@Override
public void paint(Graphics g) {
// 當組件顯示時檢測是否要創建緩衝圖片,在組件還不可見時調用createImage將返回null
if (offScreen == null) {
offScreen = createImage(width, height);
}
g.drawImage(offScreen, 0, 0, this);
}
}
public class ZFYTest extends JFrame{
private RainCanvas canvas = new RainCanvas(1366, 768);
public ZFYTest() {
super(“ZFY”);
setUndecorated(true);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
canvas = new RainCanvas(this.getWidth(), this.getHeight()); //canvas = new RainCanvas(800,600);
getContentPane().add(canvas);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
ZFYTest test = new ZFYTest();
test.canvas.startRain();
}
}
java修改文件後綴名
以下程序實現的功能是批量修改文件後綴:
import java.io.*;
/**
* JAVA實現的批量更改文件後綴名的程序。
*
* @author rommnn
*/
public class ExtBatchRename {
/**
* 修改程序。br
* 內部遞歸調用,進行子目錄的更名
*
* @param path
* 路徑
* @param from
* 原始的後綴名,包括那個(.點)
* @param to
* 改名的後綴,也包括那個(.點)
*/
public void reName(String path, String from, String to) {
File f = new File(path);
File[] fs = f.listFiles();
for (int i = 0; i fs.length; ++i) {
File f2 = fs[i];
if (f2.isDirectory()) {
reName(f2.getPath(), from, to);
} else {
String name = f2.getName();
if (name.endsWith(from)) {
f2.renameTo(new File(f2.getParent() + “/” + name.substring(0, name.indexOf(from)) + to));
}
}
}
}
public static void main(String[] args) {
ExtBatchRename rf = new ExtBatchRename();
rf.reName(“d:/”, “.jsp”, “.html”);
}
}
JAVA程序修改
首先,你錯誤的地方呢,就是你的for循環沒有做好,for()後處理一個簡單語句或一個複合語句。簡單語句以「;」結尾,複合語句就是在括號內的語句集合了。你的for循環在沒結束前就有一個分號。而之後的x[i]=a+i並不會循環。
廢話不說了,給你解釋下為什麼你產生了這個錯誤:
int x[]=new int[101];
定義包含101個int變量的數組,最大下標為100
for(i=0;i=100;i++);
x[i]=a+i;
先說你循環體什麼時候會停止執行呢?就是i不符合i=100既i=101時循環跳出。那麼這時你本該在循環體內的x[i]=a+i再一次使用了i,很明顯x的下標越界了.所以彈出了java.lang.ArrayIndexOutOfBoundsException數組下標越界異常。
另外,你的程序本身有最大的問題你沒有考慮到int變量的取值範圍,這種數據跟一個數到加100這101個數的最小公倍數根本就不是一個數量級的。這要用到大數import java.math.BigInteger。照例代碼貼上:
———————————————Maina.java—————————————–
import java.util.Scanner;
import java.math.BigInteger;
public class Maina {
public static BigInteger gcd(BigInteger x, int y) {
BigInteger m=x;
BigInteger n=new BigInteger(new Integer(y).toString());
//調用使用String類型的構造方法BigInteger(String val),
//這裡 使用int的包裝類Integer將int變量轉型為Sting。
while (true) {
if ((m = m.divideAndRemainder(n)[1]).intValue() == 0)
/*
* m.divideAndRemainder(n)此方法返回一個包含2個BigInteger元
*素的數組,m.divideAndRemainder(n)[0]為商,
* m.divideAndRemainder(n)[1]為餘數。
* m.divideAndRemainder(n)[1]).intValue()調用 BigInteger.intValue()將大數轉為int類型變量。
*/
return x.multiply(new BigInteger(new Integer(y).toString())).divide(n);
//也就是 x*y/n;
if ((n = n.divideAndRemainder(m)[1]).intValue() == 0)
return x.multiply(new BigInteger(new Integer(y).toString())).divide(m);
}
}
public static void main(String args[])
{
int i,j,t;
BigInteger c;
Scanner cin = new Scanner(System.in);
int a = cin.nextInt();
int x[]=new int[101];
for(i=0;ix.length;i++)
x[i]=a+i;
c=new BigInteger(new Integer(x[0]).toString());//只是為gcd方法傳參作準備
for(j=0;jx.length;j++)//由於是求最小公倍數j=0和j=1的效果是一樣的。
c=gcd(c,x[j]);
System.out.println(“最小公倍數:” + c);
}
}
————————————有問題聯繫我百度空間留言或hi即可——————
Java 要實現此功能 代碼應該如何修改?
Connection conn;
try {
Class.forName(“oracle.jdbc.driver.OracleDriver”);
conn = DriverManager.getConnection(“jdbc:oracle:thin:@127.0.0.1:1521:taian”, “hr”, “hr”); //連接Oracle
conn.setAutoCommit(false);
Statement myStat = conn.createStatement();
String sqlTxt = “update BankAccount set account=account-” + this.amount.getText() + ” where accId=” + this.payOut.getText();
System.out.println(“第一步 執行:” + sqlTxt);
//
try {
int affectedRow = myStat.executeUpdate(sqlTxt);
System.out.println(“從匯出方扣減” + this.amount.getText() + “元,修改了” + affectedRow + “行數據.”);
sqlTxt = “update BankAccount set account=account+” + this.amount.getText() + ” where accId=” + this.saveIn.getText();
System.out.println(“第二步 執行:” + sqlTxt);
affectedRow = myStat.executeUpdate(sqlTxt);
System.out.println(“從匯入方增加” + this.amount.getText() + “元,修改了” + affectedRow + “行數據.”);
// 事務成功結束, 提交
conn.commit();
} catch (SQLException sqlEx) {
System.out.println
sqlEx.printStackTrace();
// 事務中斷,整體回滾到事務開始前狀態
conn.rollback();
}
myStat.close();
conn.close();
} catch (Exception ex) {
System.out.println(“反正是出錯了.”);
}
}//
Java-方法-程序修改
void isPrime() {
Scanner scan = new Scanner(System.in);
System.out.print(“input a and b:”);
int a = scan.nextInt(), b = scan.nextInt(), temp;
for(temp = a * b;a % b != 0;a += b,b = (a – (a = b)) % b);
System.out.println(“ouput:” + (temp / b));
}
void isPrime_() {
Scanner scan = new Scanner(System.in);
System.out.print(“input a and b:”);
int a = scan.nextInt(), b = scan.nextInt();
for(;a % b != 0;a += b,b = (a – (a = b)) % b);
System.out.println(“ouput:” + b);
}
核心代碼就一行,功能和你的一樣,望採納
java怎麼修改文件名稱
一般的操作:
File file=new File(“word.txt”);
String filename=new String(“word1.txt”);//更改後的文件名
file.renameTo(filename);//更改文件名操作
判斷是否已經更改文件名:
File file=new File(“word.txt”);
String filename=new String(“word1.txt);
if(file.renameTo(filename)){
System.out.println(“修改文件名成功”);
}else{
System.out.println(“修改文件名失敗”);
}
file是更改文件名之前的文件,可以為絕對路徑或相對路徑:
絕對路徑可表示為:File file=new File(“D:/word.txt”);
相對路徑的根文件夾與src文件夾同級,如File file=new File(“worddir/word.txt”);中的worddir文件夾與src同級
filename是更改文件名之後的文件的文件名(包含後綴)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/285246.html