帮同学写的几个java基础题
- /**
- 1.编写 Java 程序实现:
- (1)定义如下方法求一维整型数组中的最大元素值:
- public int max (int a[])
- (2)定义如下方法对一维整型数组进行降序排列:
- public int[] sort_desc (int a[])
- (3)通过 {36,47,28,15,74,39,82,-13,0,-29,85,30} 来验证调用执行的结果
- @param args
*/
package base;
public class One {
//(1)最大值
public static int max(int a[]){
int max=Integer.MIN_VALUE;
for (int i=0;i<=a.length-1;i++){
if (a[i]>max)
max=a[i];
}
return max;
}
//(2)降序 冒泡法
public static int[] sort_desc(int a[]){
for (int i=0;i<a.length-1;i++){
for (int j=0;j<a.length-1-i;j++){
if(a[j+1]>a[j]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
return a;
}
public static void main(String[] args) {
int a[]={36,47,28,15,74,39,82,-13,0,-29,85,30};
System.out.println("最大值为:"+max(a));
System.out.println("冒泡法降序:"+sort_desc(a).toString());
for (int i=0;i<=sort_desc(a).length-1;i++){
System.out.println(a[i]+"\t");
}
}
}
- /**
* (1)定义如下方法,将给定的正整数转化为对应的汉字金额,已知数字的范围是 n≤10
* 6。
* 例如,给定 123,转化为 壹佰贰拾叁元。
* public String change(int n)
* @param
*/
package base;
public class two {
public static String change(int n){
StringBuffer rs=new StringBuffer();
char str1[]="零壹贰叁肆伍陆柒捌玖".toCharArray();
char str2[]="元拾佰仟万拾佰仟亿拾佰仟".toCharArray();
String temp=String.valueOf(n);
//获取最高的整数位
int b=temp.length()-1;
for (int i=0;i<=temp.length()-1;i++) {
//单独取出每一个数字
Integer a=Integer.parseInt(temp.substring(i,i+1));
rs.append(str1[a]);
rs.append(str2[b]);
b--;
}
return rs.toString();
}
/**
* * (2)定义如下方法,对给定字符串,统计其中汉字的个数。:
* * public int count (String s)
* * (3)用“Hello, Mike! 欢迎来梧州交流。明天下午 3 点在 N309 碰面。”来验证调用执
* * 行的结果。
* @param s
* @return
*/
public static int count (String s){
String Reg="^[\u4e00-\u9fa5]{1}$";//正则表达式处理
int result=0;
for(int i=0;i<s.length();i++){
String b=Character.toString(s.charAt(i));
if(b.matches(Reg))
result++;
}
return result;
}
public static void main(String[] args) {
String str="Hello, Mike! 欢迎来梧州交流。明天下午 3 点在 N309 碰面。";
System.out.println(change(123));
System.out.println("汉字个数"+count(str));
}
}
- /**
* 3. 编写 Java 程序实现:将以下内容写入到文件“姓名.txt”中。
* 姓名:
* 班级:
* 学号:
* 保存日期:
* @param args
*/
package base;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class three {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
StringBuffer date=new StringBuffer();
for(int i=0;i<=3;i++){
String data = sc.next();
date.append(data+":\n");
}
File file=new File("C:\\Users\\86130\\Desktop\\姓名.txt");
BufferedWriter bw = new BufferedWriter(new FileWriter(file,true));//此处true为追加
bw.write(String.valueOf(date));
bw.close();
}
}
- /**
*4. 编写 Java 程序实现:三个线程并发执行,线程 A 负责每隔 2 秒给共享数据(int 类型- 的变量)加上一个 1~10 中间的随机整数,线程 B 负责每隔 1.5 秒给前述共享数据减去
- 一个 1~50 中间的随机整数,线程 C 负责每个 1 秒向屏幕输出当前的时间。
- @param
*/
public class Four extends Thread {
public static int A(int n){
Thread t1= new Thread(); //创建线程
t1.start();
int count=2;
while (count>0){
Random random = new Random();
n+=random.nextInt(10)+1;
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
count--;
}
return n;
}
public static int B(int n){
Thread t2= new Thread(); //创建线程
t2.start();
int count=1;
while (count>0){
Random random = new Random();
n-=random.nextInt(50)+1;
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
e.printStackTrace();
}
count--;
}
return n;
}
public static void C(){
Thread t3= new Thread(); //创建线程
t3.start();
int count=1;
while (count>0){
try {
Thread.sleep(1500);
System.out.println(new Date());
} catch (InterruptedException e) {
e.printStackTrace();
}
count--;
}
}
public static void main(String[] args) {
Integer num=0;
while (true){
num=A(num);
num=B(num);
System.out.println(num);
C();
}
}
}