package com.jia.mou;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Lingxing {
/**
* 数组a[m];b[n]都是已经排序好的数组(下面的程序是升序),要求合并成一个有序的数组c[m+n]
*
* @param a
* @param b
* @return
*/
public static int[] sort(int[] a, int[] b) {
int m = 0;
int n = 0;
int i = 0, j = 0;
m = a.length;
n = b.length;
int[] c = new int[m + n];
for (; i < m;) {
for (; j < n;) {
if (a[i] > b[j]) {
c[i + j] = b[j];
j++;
} else {
c[i + j] = a[i];
i++;
break;
}
}
if (i == m - 1 && j < n - 1) {
for (; j < n; j++) {
c[i + j] = b[j];
}
}
if (j == n - 1 && i < m - 1) {
for (; i < m; i++) {
c[i + j] = a[i];
}
}
}
// 打印c
for (int k = 0; k < m + n; k++) {
System.out.println("c[" + k + "]=" + c[k]);
}
return c;
}
/**
*
* 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
* 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
* (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n <>
* k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
* (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
*
* @param n
*/
public static void fenjie(int n) {
System.out.print(n + "=1");
int k = 2;
if (n == 2) {
System.out.print("*2");
} else {
while (n >= k) {
if (n % k == 0) {
System.out.print("*" + k);
n = n / k;
} else {
k++;
}
}
}
}
/**
* 获得随机日期
*
* @param startDate
* @param endDate
* @return
*/
public static Date randomDate(String startDate, String endDate) {
try {
SimpleDateFormat format = new SimpleDateFormat();
Date start = format.parse(startDate);
Date end = format.parse(endDate);
if (start.getTime() >= end.getTime()) {
return null;
}
long date = random(start.getTime(), end.getTime());
return new Date(date);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static long random(long begin, long end) {
long rtn = begin + (long) (Math.random() * (end - begin));
if (rtn == begin || rtn == end) {
return random(begin, end);
}
return rtn;
}
/**
* 找出一个字符串中的中文部分
*/
public static String getChineseStr(String str) {
String chineseStr = "";
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
try {
if (isChineseChar(ch[i])) {
chineseStr += ch[i];
} else {
chineseStr += " ";
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
System.out.println("输出中文部分:" + chineseStr);
return chineseStr;
}
/* 下面是判断一个字符是否是中文的方法 */
public static boolean isChineseChar(char c)
throws UnsupportedEncodingException {
return String.valueOf(c).getBytes("GBK").length > 1;
}
/**
* 获得菱形
*
*/
public static void getLinxing() {
// TODO Auto-generated method stub
int i = 0;
int j = 0;
int k = 0;
for (i = 0; i < 5; i++) {
for (j = 0; j < 5 - i; j++) {
System.out.print(" ");
}
for (k = 0; k < 2 * i + 1; k++) {
System.out.print("*");
}
System.out.println("");
}
for (i = 1; i < 5; i++) {
for (j = 0; j < i + 1; j++) {
System.out.print(" ");
}
for (k = 0; k < 2 * (5 - i) - 1; k++) {
System.out.print("*");
}
System.out.println("");
}
}
/**
* 计算一篇文章中不同单词出现的次数
*/
public static void word_count() {
String str = "Hello pan 1 hello ya 2 feng";
Pattern pattern = Pattern.compile("[a-zA-Z]+");// 定义正则表达式匹配单词
// Pattern pattern = Pattern.compile("[a-zA-Z]");
str = str.toLowerCase();// 转化为小写
Matcher matcher = pattern.matcher(str);// 定义str的匹配器
Map myHashMap = new HashMap();
// 使用map有这么一个问题:hello是第一个出现的,但在第二次出现的时候在map中的位置就不是第一个了
int n = 0;// 文章中单词的总数
Object word = null;// 文章中的单词
Object num = null;// 出现的次数
while (matcher.find()) {// 是否匹配单词
word = matcher.group();// 得到一个单词-树映射的键
n++;
if (myHashMap.containsKey(word)) {// 如果包含该键,单词出现过
num = myHashMap.get(word);// 得到单词出现的次数
Integer count = (Integer) num;// 强制转化
myHashMap.put(word, new Integer(count.intValue() + 1));
} else {
myHashMap.put(word, new Integer(1));// 否则单词第一次出现,添加到映射中
}
}
@SuppressWarnings("rawtypes")
Iterator iter = myHashMap.keySet().iterator();// 得到树映射键集合的迭代器
Object key = null;
System.out.println("单词总数:" + n + "个,其中不同的有 " + myHashMap.size() + "个:");
while (iter.hasNext()) {// 使用迭代器遍历树映射的键
key = iter.next();
System.out.println(key + " 有" + myHashMap.get(key) + "个;");
}
}
/**
* 50个人围成一个圈数数,数到3或3的倍数的人出局,最后剩几号
*/
public static void count() {
int[] man = new int[50];
for (int i = 0; i < 50; i++) {
man[i] = 1;
}
int j = 0;
int num = 0;
int count = 0;// 出局的人数
while (true) {
if (man[j % 50] == 1) {
num++;
if (num == 3) {
man[j % 50] = 0;
num = 0;
count++;
}
}
if (count == man.length) {
System.out.println("数到了 " + j);
System.out.println("最后一个是:" + (j % 50 + 1) + "号");
break;
}
j++;
}
}
/**
* 随机生成a--z的20个字母,不能重复,然后排序输出
*/
public static void outCharactor() {
int num = 0;
Object ch;
Set st = new HashSet();
while (true) {
num = 97 + (int) (Math.random() * 24);
ch = (char) num;
st.add(ch);
if (st.size() == 20) {
break;
}
}
System.out.print("排序前:");
Iterator it = st.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
System.out.print("排序后:");
Object[] a = new Object[20];
a = st.toArray();
char t;
int k = 0;
for (int j = 0; j < 20; j++) {
for (k = j; k < 20; k++) {
if ((Character) a[j] > (Character) a[k]) {
t = (Character) a[j];
a[j] = (Character) a[k];
a[k] = t;
} else {
continue;
}
}
}
for (int i = 0; i < 20; i++) {
System.out.print(a[i] + " ");
}
}
/**
* 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半; 再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
*/
public static void niuTun() {
double h = 100;
double sum = 0;
for (int i = 1; i <= 10; i++) {
sum += h;
h = h * 0.5;
if (i != 10) {
sum += h;
}
}
System.out.println(sum + "," + h);
}
/**
* 数学法 count 1 2 3 4 5 公式 经过多少米? 100 200 250 275 287.5 100*(3-1/(2^(N-2)))
* 反弹多高? 50 25 12.5 6.25 3.125 100/(2^N)
* @param args
*
*/
public static void niuTunMaths(String[] args) {
float H = 100f;
int count = 10;
System.out.println(H * (3 - 1.0 / Math.pow(2, count - 2)));
System.out.println(H / Math.pow(2, count));
}
/**
*
* @author jiashaoshan
* @param args
*/
public static void main(String[] args) {
}
}
分享到:
相关推荐
"Java经典练习小程序代码"是一个集合,包含了多种针对初学者设计的编程练习,旨在帮助他们巩固基础知识,提高编程技能。 1. **Java基础**: 这些练习代码主要涵盖了Java的基础部分,包括变量、数据类型、运算符、...
"java经典练习题50道"这个资源为初学者提供了一个良好的学习平台,帮助他们深入理解和掌握Java编程基础。 首先,这50道练习题涵盖了Java语法的基础部分,包括变量声明、数据类型、运算符、流程控制(如if语句、...
"JAVA经典练习题" 本资源摘要信息是基于JAVA经典练习题的知识点总结,涵盖了JAVA语言的基础知识和高级特性。 一、数据类型和运算符 * 比较3个数的大小,并将它们按照从小到大的顺序输出(题目1) * 编写一个Java...
"Java经典练习50例"提供了这样的机会,通过解决一系列精心设计的问题,你可以提升你的编程技能,了解Java的核心概念和特性。 这50个练习涵盖了Java的基础语法、面向对象编程、异常处理、集合框架、多线程、I/O流、...
"JAVA经典练习题"这个标题所指的,很显然是一个集合了各种Java编程练习题目的资源,旨在帮助学习者巩固和提升Java编程技能。描述中的“我们学校总结的JAVA试题简单而且绝对经典”,暗示了这些题目可能来源于教育机构...
Java经典练习.rarJava经典练习.rarJava经典练习.rarJava经典练习.rarJava经典练习.rar
Java经典练习题全套 Java是一种广泛应用于Android开发、Web开发、企业软件开发等领域的高级编程语言。Java语言具有平台独立性、对象oriented、分布式、健壮的安全性、多线程等特点。下面是Java经典练习题全套,旨在...
本文将深入探讨Java基础练习代码中的关键概念,帮助初学者巩固基础,提高编程技能。 首先,Java是一种面向对象的编程语言,它的核心特性包括封装、继承和多态。在练习代码中,你会看到如何定义类(class)并创建...
在这个"java接口练习作业"中,我们将会探讨接口的使用,以及如何将其应用于集合框架中。 首先,让我们深入了解Java接口的基本概念。接口是完全抽象的类,不能包含实例变量,但可以声明常量。它由一系列无实现的方法...
经典Java编程练习题 Java编程练习题是一组经典的编程练习题,旨在考核Java编程能力。这30道练习题涵盖了Java基础知识、数据类型、运算符、控制结构、方法、数组、面向对象编程等方面的知识点。 知识点1: Java基础...
在Java编程语言的学习过程中,示例练习是提升技能的关键步骤。"Java示例练习"的标题和描述都强调了通过实践来巩固理论的重要性。这里,我们将会深入探讨几个关键的知识点,这些知识点涵盖在给定的压缩包文件的各个...
在这个“java集合练习题”中,我们主要关注如何使用Java集合框架来处理数据,特别是对于学生信息的存储、排序和输出。以下是对这个练习题的详细解析: 1. **集合框架简介**: Java集合框架是Java API的一部分,它...
在Java经典习题练习中,我们通常会遇到各种算法和逻辑问题的解决,这有助于提升编程技能和理解计算机科学的核心概念。以下是两个经典的Java编程练习题及其解析: 1. 兔子问题(斐波那契数列) 这个问题是基于...
"java基础练习源码"这个标题表明,这是一个包含了与Java基础知识相关的编程练习的集合,可能是为了配合毕向东老师的Java基础视频教程。毕向东老师是知名的Java教育专家,他的课程通常覆盖了Java语言的核心概念,包括...
Java 方法练习 本文档提供了多个 Java 方法练习题,涵盖了基本数据类型、方法重载、计算器等多个方面。下面是对每个题目的知识点总结: 1. 将数字转换为星期字符串 * Java 中的 switch 语句:用于根据不同的输入...
Java面向对象练习题经典 Java面向对象练习题是Java编程语言中非常重要的一部分,这些练习题涵盖了Java语言的基础知识,包括Java基本数据类型、运算符、控制结构、方法、类和对象、继承、多态、抽象类和接口等方面。...
Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道
本压缩包包含了三个文档,分别是“JAVA经典算法40题.doc”、“最新JAVA编程题全集_50题及答案.doc”和“50道JAVA基础编程练习题.doc”,这些资源为初学者提供了大量的实践机会,有助于深入理解和运用Java。...
这份"java基础练习题(目前到集合内含三个小综合案例)"涵盖了Java的基础知识,旨在帮助学习者巩固并提升Java编程技能。从JDK(Java Development Kit)入门到集合框架的学习,这是一个全面了解和实践Java编程的重要...