import java.util.Scanner; // 这是竹林设计的第一款游戏,猜拳的升级版!!!
public class 猜拳游戏 {
public static void main(String[] args) {
int m = 1;
Scanner scan=new Scanner(System.in);
System.out.println(" -----------------------猜拳游戏----------------------");
for(int i = 0;i < 3; i++) {
System.out.println("请猜拳:(1.石头 2.剪刀 3.布)" + " 三局两胜,还剩" + (3-i) + "局");
int you=scan.nextInt();
if(you !=1 && you !=2 && you !=3) {
System.out.println("你这么淘气你妈妈知道吗,╮(╯▽╰)╭ 还是输入1,2,3其中之一吧" + '\n');
}else {
int com=(int)(Math.random()*3)+1;
String s="";
String l="";
switch(com){
case 1:
s="石1头";
break;
case 2:
s="剪刀";
break;
case 3:
s="布";
break;
}
switch(you){
case 1:
l="石头";
break;
case 2:
l="剪刀";
break;
case 3:
l="布";
break;
}
if(com==you){
System.out.println("平 局---你出的是 "+l+", 电脑出的是 " + s +'\n');
}else if(you==1&&com==2||you==2&&com==3||you==3&&com==1){
m++;
System.out.println("你赢了---你出的是 "+l+", 电脑出的是 " + s + '\n');
}else {
m--;
System.out.println("你输了---你出的是 "+l+", 电脑出的是 " + s +'\n');
}
}
}
if(m >= 2) {
System.out.println(" 能有如此高的成就,想必您定不是普通人吧,可否方便让在下知道您的姓名:");
int h = 0;
Scanner c = new Scanner(System.in);
String ss = c.nextLine();
for (int l = 9;l >= 0 ;l-- ) {
for (int j = 0;j < l+26 ;j++ ) {
System.out.print(" ");
}
h++;
for (int k = h;k > 0 ;k-- ) {
System.out.print("* ");
}
System.out.println();
}
System.out.println("\n 原来是"+ss+"阁下,您的大名我早已如雷贯耳!想不到您已站在了金子塔顶端,佩服佩服!");
}else if(m == 1) {
System.out.println(" 恭喜您最终赢得胜利!!!-----" + "↖(^ω^)↗↖(^ω^)↗↖(^ω^)↗");
} else if(m == 0) {
System.out.println(" 革命尚未成功,同志仍需努力!!! (⊙o⊙)。。。");
}else {
System.out.println(" !(╯﹏╰)!离成功就差那么一丢丢。。。");
}
}
}
class Wmm {
//素数判断条件:是否能被2--n/2整除,整除的跳过,不能整除的为素数,输出素数
public static void main(String[] args) {
System.out.println("1到n(100)之间的所有素数为:");
int j=0;
for (int i=2;i<=100 ;i++ ) {
for (int z=2;z<i/2 ;z++ ) {
if (i%z==0) {
System.out.print(i+"\t");
j++;
if (j%5==0) {
System.out.println();
}
}else {
continue;
}
}
}
System.out.println("1到100之间的素数有"+j+"个");
}
}
//获取数组中的索引值,利用索引值取得最值并调换位置
class Th {
public static void main(String[] args) {
int[] a = {6,2,9,15,1,5,20,7,18};
int max = 0; //设定数组最大值的索引值
int min = 0;
int t;
System.out.println("改变前的数组为" );
for(int j = 0;j < a.length;j++) {
System.out.print(a[j] + " ");
}
for(int i = 0; i < a.length;i++) { //获取最大、小值的实际索引值
max = (a[i] > a[max])? i : max;
min = (a[i] < a[min])? i : min;
}
t = a[max]; //由索引调换最大、小值的存储位置
a[max] = a[a.length-1];
a[a.length-1] = t;
t = a[min];
a[min] = a[0];
a[0] = t;
System.out.println("\n改变后的数组为" );
for(int j = 0;j < a.length;j++) { //编辑输出
System.out.print(a[j] + " ");
}
}
}
(1)定义一个int类型的一维数组,内容为{6,2,9,6,1,2,6,7,8}
(2)去除上面定义的数组中的重复元素,打印最终结果{6, 2, 9, 1, 7, 8}
(还可用集合完成)
import java.util.Scanner;
class Fz {
public static void main(String[] args) {
int[] arr = {6,2,9,6,1,2,6,7,8};
System.out.print("{" + arr[0] + ",");
//后边的元素与前边的元素分别比较,若相等则不输出
for(int i = 1;i <arr.length;i++) {
//第i个元素分别与第j个元素比较是否相等,j不断变小至0
for(int j = 0;j <= i-1;j++) {
if(arr[i] == arr[j]) {
break;
}
if(j == i-1) { //此处设计的比较经典,我需要什么就去设定什么,去考虑什么即可
System.out.print(arr[i] + ",");
}
}
}
}
}
import java.util.Arrays;
class zuizhi {
public static void main(String[] args) {
int[] att[] = {{1,2,3},{4,15,64,7,22},{8,66,44},{2,3}};
Arrays.sort(att[1]); //二维数组可以用sort排序,但要以一维数组形式
for (int j = 0;j < att.length ;j++ ) { //不同长度的二维数组输出方法
for(int i = 0;i<att[j].length;i++)
System.out.println(att[j][i]);
System.out.println("==================================");
}
}
}
// 求得一个范围内的所有素数:
import java.util.Scanner;
class Day040202 {
//数字都会被整除,素数是被1和本身整除,其它的数还可以被其它因数可以整除
public static void main(String[] args) {
/*System.out.println("1到100之间的所有素数为:");
int j=0;
for (int i=2;i<=100 ;i++ ) {
for (int z=2;z<=i ;z++ ) {
if (i%z==0&&z!=i) { //排除所有非素数的数
break;
}else if (i==z) { //限定循环执行到结尾在做输出
System.out.print(i+"\t");
j++;
if (j%5==0) {
System.out.println();
}
}
}
}
System.out.println("1到100之间的素数有"+j+"个");*/
//方法二 :被2--n/2测试是否能被整除,不能被整除的为素数
int count = 2;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个选取范围的最大值:");
int m = sc.nextInt();
System.out.print("2\t3\t");
for(int i = 2;i < m;i++){
for(int j = 2;j <= i/2 ;j++ ) {
if(i % j == 0) {
break;
}else if(j == i/2) {
System.out.print(i + "\t");
count++;
if(count % 5 == 0)
System.out.println();
}
}
}
System.out.println("\n 共有素数 :" + count);
}
}
class ChaZiFu { //该方法是 查看A字符串中含有多少个B字符串
public static void main(String[] args) {
String s = "lsdfslheimaljkdlheimasdfsj3445heima,dsljflls.sjlhaheimalsfjheima;kdslheima";
String sz = "heima";
//分析:定义计数器以0开始,利用indexOf获取地址若无则返回-1,利用for或while循环,截取字符串从index+sz.length()开始
int count = 0;
int index;
while((index = s.indexOf(sz))!= -1) {
count++;
s = s.substring(index + sz.length()); //关键步骤,截取未被扫描的字符串
}
System.out.println("s字符串中含有的sz字符串个数: " + count);
}
}
package com.supers.mathj;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test3 {
public static void main(String[] args) {
//method1();
//method2();
String st = "woshiyigefenshuajiangafenwoshubenlingqinwoagadulahahayigersana";
String min = "wo";
int count = 0;
Pattern p = Pattern.compile(min); //采用模板匹配式查看字符串中含有小字符串的个数
Matcher m = p.matcher(st); //此处p和st位置不能调换
while(m.find()) {
count++;
}
System.out.println(count);
}
private static void method2() { //采用 indexOf 加 substring方法判断大字符串含小字符串的个数及出现的索引位置;
String st = "woshiyigefenshuajiangafenwoshubenlingqinwoagadulahahayigersana";
String min = "wo";
int count = 0;
int index = 0;
while((index = st.indexOf(min)) != -1) {
count++;
st = st.substring(index + min.length());
System.out.println(min + "出现的索引位置是:" + index);
}
System.out.println("总共出现:" + count);
}
private static void method1() { //字符串倒序输出
String ss = "";
StringBuilder sb = new StringBuilder("");
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.nextLine();
for (int i = s.length()-1; i >= 0; i--) {
//ss = ss + s.charAt(i);
sb.append(s.charAt(i));
}
System.out.println(ss);
System.out.println(sb);
}
}
3.分析以下需求,并用代码实现:
(1)键盘录入一个小数,要求小数点后的小数位最少2位
(2)定义方法,实现保留小数点后的两位小数(只舍不进)
(3)如:输入5.6789 输出5.67,输入5.67389 输出5.67
import java.text.DecimalFormat;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Cs {
/*(1)键盘录入一个小数,要求小数点后的小数位最少2位
(2)定义方法,实现保留小数点后的两位小数(只舍不进)
*/
public static void main(String[] args) {
//false1method();
//false2method();
//false0method();
//false3method();
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个小数点后的小数位最少2位的小数:");
String st = sc.nextLine();
int r = st.indexOf(".");
if(r == -1 || st.length() < r + 3) {
System.out.println("您输入的小数有误!");
return;
}
String regex = "\\d+\\.\\d{2}"; //设置符合要求的正则表达式
Pattern p = Pattern.compile(regex); //格式模板遍历
Matcher m = p.matcher(st);
m.find(); //查找字符串中是否含有符合要求的字符串
System.out.println(m.group()); //输入符合要求的字符串
}
|
|