Java数组六

Posted 一笑笑出了泪痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java数组六相关的知识,希望对你有一定的参考价值。

1.了解如何利用二维数组和循环语句绘制五子棋盘

  答:  定义一个二维数组来充当棋盘,定义棋盘大小,初始化棋盘数组,利用for循环使每一个元素赋为“+”,然后输出每个数组元素,每打印完一行后在进行换行。

import java.io.*;

 

public class QiPan

{

//定义一个二维数组来充当棋盘

private String[][] board;

//定义棋盘的大小

private static int BOARD_SIZE = 15;

public void initBoard()

{

//初始化棋盘数组

board = new String[BOARD_SIZE][BOARD_SIZE];

//把每个元素赋为"",用于在控制台画出棋盘

for (int i = 0 ; i < BOARD_SIZE ; i++)

{

for ( int j = 0 ; j < BOARD_SIZE ; j++)

{

board[i][j] = "";

}

}

}

//在控制台输出棋盘的方法

public void printBoard()

{

//打印每个数组元素

for (int i = 0 ; i < BOARD_SIZE ; i++)

{

for ( int j = 0 ; j < BOARD_SIZE ; j++)

{

//打印数组元素后不换行

System.out.print(board[i][j]);

}

//每打印完一行数组元素后输出一个换行符

System.out.print("\\n");

}

}

    public static void main(String[] args)throws Exception

    {

        QiPan gb = new QiPan();

gb.initBoard();

gb.printBoard();

//这是用于获取键盘输入的方法

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String inputStr = null;

                System.out.println("请输入您下棋的座标,应以x,y的格式:");

//br.readLine():每当在键盘上输入一行内容按回车,刚输入的内容将被br读取到。

while ((inputStr = br.readLine()) != null)

{

//将用户输入的字符串以逗号(,)作为分隔符,分隔成2个字符串

String[] posStrArr = inputStr.split(",");

//2个字符串转换成用户下棋的座标

int xPos = Integer.parseInt(posStrArr[0]);

int yPos = Integer.parseInt(posStrArr[1]);

//把对应的数组元素赋为""

gb.board[xPos - 1][yPos - 1] = "";

/*

 电脑随机生成2个整数,作为电脑下棋的座标,赋给board数组。

 还涉及

1.座标的有效性,只能是数字,不能超出棋盘范围

2.如果下的棋的点,不能重复下棋。

3.每次下棋后,需要扫描谁赢了

 */

gb.printBoard();

System.out.println("请输入您下棋的座标,应以x,y的格式:");

}

    }

}

 

2.请编写一个程序将一个整数转换为汉字读法字符串。比如1123”转换为“一千一百二十”。

    public class Test {

    public static void test(int d) {

 

        String[] str = { "", "", "", "", "", "", "", "", "", "" };

 

        String ss[] = new String[] { " ", "", "", "", "", "", "", "", "亿" };

        String s = String.valueOf(d);

        System.out.println(s);

        StringBuffer sb = new StringBuffer();

        for (int i = 0; i < s.length(); i++) {

            String index = String.valueOf(s.charAt(i));

            sb = sb.append(str[Integer.parseInt(index)]);

        }

        String sss = String.valueOf(sb);

        int i = 0;

        for (int j = sss.length(); j > 0; j--) {

            sb = sb.insert(j, ss[i++]);

        }

        System.out.println(sb);

    }

 

    public static void main(String[] args) {

        test(1123);

        test(912321321);

    }

}

3.更进一步,能否将数字表示的金额改为汉字表达?比如将“¥123.52”转换为“壹佰贰拾叁元伍角贰分”。

 public class MoneyConvert {

 private final String[] str1 = {"", "", "", "", "", "", "", "", "亿"};  

    private final String[] str2 = {"", "", "", "", "", "", "", "", "", ""};  

    private final String[] str3 = {"", ""};  

      

    public static void main(String[] args)  

    {  

        double n = 1234506.789;  

          

        MoneyConvert mc = new MoneyConvert();  

        String str = mc.convert(n);  

          

        System.out.println(str);  

    }  

      

    public String convert(double n)  

    {  

        String str = String.valueOf(n);  

        String temp1 = str.substring(0, str.indexOf("."));  

        String temp2 = str.substring(str.indexOf(".")+1);  

          

        int k = -1;  

        int len = -1;  

        StringBuffer sb = new StringBuffer();  

          

        len = temp1.length()-1;  

        for(int i=0; i<temp1.length(); i++)  

        {  

            k = Integer.parseInt(temp1.substring(i, i+1));  

            sb.append(str2[k]).append(str1[len-i]);  

        }  

          

        for(int i=0; i<2; i++)  

        {  

            k = Integer.parseInt(temp2.substring(i, i+1));  

            sb.append(str2[k]).append(str3[i]);  

        }  

4.不用BigInteger,直接使用数组表达大数,能实现相同的功能吗?

要求:

(1)用你的大数实现加和减两个功能

   package Work;

import java.util.Scanner;

public class BigNum {

 

   public static void main(String[] args) {

       // TODO Auto-generated method stub

     

     int aa,bb;

     System.out.println("用数组实现大数的加法和减法");

     System.out.print("请输入大数a:");

     Scanner scan=new Scanner(System.in);

     String a=scan.next();

     System.out.print("请输入大数b:");

    String b=scan.next();

    int A[]=new int[100];

    int B[]=new int[100];

    

    for(int i=0;i<a.length();i++){

        A[i]=(int) ((a.charAt(i)-48)*Math.pow(10,a.length()-i-1));

    }

    for(int i=0;i<b.length();i++){

        B[i]=(int) ((b.charAt(i)-48)*Math.pow(10,b.length()-i-1));

    }

    int sum=0;

    int sub=0;

    for(int i=0;i<a.length();i++){

        sum+=A[i]+B[i];

        sub+=A[i]-B[i];

    }

    System.out.print("a+b="+sum);

     System.out.println();

     System.out.print("a-b="+sub);

   }

 

}

2)阅读BigInteger类源码,弄清楚它是使用什么算法实现加减乘除四种运算的?

本整数类型)。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生Java数组六

面试系列六八 之 java知识点

java基础

javaWeb中,根据用户输入一个日期,查询一周日期(上周日,到本周六)。

Java数组超详解

Java学习日记基础篇(七) —— 数组排序