1.选择排序法

所谓的选择排序,就是把当前数据与它后面所有的数据做个比较,假如满足比较条件,则进行交换操作,直到最后二个数比较完毕,

这样重新输出的数据就已经由大到小或者由小到大排好序了。

for(int i=0;i

for(int j=i+1;j

if(arr[i]>arr[j]){

swap(arr,i,j);

}

}

}

2.冒泡排序法

所谓的冒泡排序,就是相邻的二个数相互比较,把满足比较条件的二个数给交换下位置,第一轮二二相比较,把第一个最大(或最小值)

给冒泡到最后面去,然后第二轮继续从最前面开始二二比较,直到已经被确定位置的数据为止,从而确定第二个数,以此类推,从而达到排序。

for(int i=0;i

for(int j=0;j

if(arr[j]>arr[j+1]){

swap(arr,j,j+1);

}}

3.二维数组求和

基本思想:把每个一维数组遍历出来,然后再求和,所有一维数组的和就是二维数组的和

int arr[][] = {{1,3,4,5},{2,5,6},{64,12}};

int sum=0;

for(int i=0;i

for(int j=0;j

sum+=arr[i][j];

}

}

4.获取一个子串在字符串中出现的次数

基本思想:使用字符串中的indexOf方法,返回子串在字符串中的位置,假如返回的数字不是-1,则计数器加一,然后继续从返回的index索引号

加上子串的长度位置继续使用indexOf(key,index)查找,直到返回的为-1为止,index=index+key.length(假如允许重叠的话,则index++)

public static Integer getKeyCountFromStr(String str,String key){

int index=0;

int count=0;

while((index=str.indexOf(key,index))!=-1){

index=index+key.length();

count++;

}

}

5.获取两个字符串中最大相同子串

基本思想:使用字符串中contains方法,从最大字符串包含最小字符串开始进行判断,假如不包含则从子串中截取出少一字符的子串,然后再

判断是否被最大字符串包含,直到被包含位置,返回该字串。注意截取是左闭有开

public static List getMaxSameStr(String stringOne,String stringTwo){

String longstring,shortstring,substring;

List substringgroup = new ArrayList<>();

if(null==stringOne||null==stringTwo||stringOne.isEmpty()||stringTwo.isEmpty()){

substringgroup.add("字符串存在为空或为null,没有相同字串");

return substringgroup;

}

if(stringOne.length()>stringTwo.length()){

longstring = stringOne;

shortstring = stringTwo;

}else{

longstring = stringTwo;

shortstring = stringOne;

}

for(int i=0;i

for(int j=0,y=shortstring.length()-i;y!=shortstring.length()+1;j++,y++){

substring=shortstring.substring(j,y);

if(longstring.contains(substring)){

substringgroup.add(substring);

}

}

if(substringgroup.size()!=0){

return substringgroup;

}

}

if(substringgroup.size()==0){

substringgroup.add("没有相同字串");

return substringgroup;

}

return null;

}

6. "34 9 -7 12 67 25"要求对这个字符串中的数值进行从小到大的排序

基本思路:通过字符串spilt方法按照一定规则进行切割转换成字符串数组,再把字符串数组转换为int数组,然后再进行冒泡排序

public static int[] sortStringNumber(String str,String split){

String[] strgroup = str.spilt(spilt);

int[] number = toIntGroup(strgroup);

return sortNumber(number);

}

public static int[] toIntGroup(String[] stringGroup){

int[] intgroup = new int[stringGroup.length()];

for(int i=0;i

intgroup[i]=Integer.parseInt(stringGroup[i]);

}

return intgroup;

}

public static int[] sortNumber(int[] intgroup){

for(int i=0;i

for(int j=0;j

if(intgroup[j]>intgroup[j+1]){

int temp=intgroup[j];

intgroup[j]=intgroup[j+1];

intgroup[j+1]=temp;

}

}

}

return intgroup;

}

7.九九乘法表打印

基本思路:1.找出规律-第一行,只有一个计算,第二行,有二个,每行第二个数等于行数,第一个数从1开始到行数

2.根据规律设计结构-二层嵌套循环打印,以及打印完每行后进行换行操作

public static void printMultTable(int number){

if(number<=0){

System.prinln.out("请输入大于0的整数");

System.exit();

}

for(int i=1;i<=number;i++){

for(int j=1;j<=i;j++){

system.print.out(j+"*"+i+"="+j*i);

system.print.out();

}

system.println.out();

}

}

8.打印以下图案

*

* * *

* * * * *

* * * * * * *

* * * * *

* * *

*

基本思路:找出每行星数变化规律-由于前面的好找规律,后面的比较难找,所以从后面开始找规律,行数+星星数=最大数为14

public static void printStar(int row){

if(row<=0){

System.prinln.out("请输入大于0的整数");

System.exit();

}

for (int i=1; i<=2*row-1; i+=2){

for(int j=1; j<=i && i+j<= 2*row; j++){

System.out.print("* ");

}

System.out.println(); // 换行

}

}

9. PI=4/1-4/3+4/5-4/7.......

打印出第一个大于 3.1415小于 3.1416的值

1.分子=-4*(-1),分母=分母+2

public static double getorderPi(){

double pi=0,molecule=-4;

for(int i=1;;i+=2){

molecule=molecule*(-1);

pi = pi+molecule/i;

if(pi>3.1415&&pi<3.1416){

return pi;

}

}

}

10.在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下:

*

***

*****

*******

*********

空格=n-i

星星数=2n-1

public static void printTriangleStar(int n){

for(int i=1;i<=n;i++){

for(int j=0;j

System.out.print(" ");

}

for(int k=1;k<=2*i-1;k++){

System.out.print("*");

}

System.out.println();

}

}

11.约梭芬杀人法

把犯人围成一圈,从任意位置开始数,杀掉第7个人,然后继续从被杀掉的人后面那位从头开始数,直到剩下最后一个,

求打印出最后剩下的犯人是谁

基本思想:把犯人放到一个list中去,然后这里分为二种情况,当犯人数大于等于7的时候,kill掉的后面的元素赋予给一个新数组,

然后把前面的元素给add到新数组中去,然后循环去迭代,直到小于七人,

当犯人数小于七人的时候,利用数组大小%7获得kill索引,不断去获取,然后kill掉,直到数组大小=1;

public static List getLastPrisoner(List list,int killnumber){

List newlist = new ArrayList();

while(list.size()>=killnumber){

for(int i=0;i

if(i>killnumber-1){

newlist.add(list.get(i));

}

}

for(int j=0;j

newlist.add(list.get(j));

}

list.clear();

for(int k=0;k

list.add(newlist.get(k));

}

newlist.clear();

}

while(list.size()>1){

for(int h=0;h

if(h>(killnumber%list.size()-1)){

newlist.add(list.get(h));

}

}

int size=newlist.size();

for(int x=0;x

newlist.add(list.get(x));

}

list.clear();

for(int y=0;y

list.add(newlist.get(y));

}

newlist.clear();

}

return list;

}

java练手小程序_Java小程序练习相关推荐

  1. 推荐几个适合新手的Java练手项目(好玩又有趣)

    Java练手项目第一波 一.坦克大战 链接:https://www.bilibili.com/video/BV1zP4y1b7gw/?spm_id_from=333.337.search-card.a ...

  2. 百看不如一练,55个Java练手项目(附源码+视频教程),全都在这里了

    我们都知道,不管学习那门语言最终都要做出实际的东西来,而对于编程而言,这个实际的东西当然就是项目啦,不用我多说大家都知道学编程语言做项目的重要性. 于是,我熬了几个通宵,终于整理出了55个培训机构内部 ...

  3. java小程序_Java小程序

    java小程序 An applet is a special kind of Java program that runs in a Java enabled browser. This is the ...

  4. Java练手小游戏---黄金矿工

    你玩过4399曾经最火的黄金矿工小游戏吗,黄金矿工小游戏是一款休闲娱乐的一个挖宝游戏,在游戏中地下会有许多的宝藏,你得想办法把它们都挖出来,作为矿工的你,对你来说是轻车熟路的,能不能挖到宝,看你抓取的 ...

  5. Java练手小项目——BMI计算器

    最近有一个减肥的朋友想要知道自己的BMI是多少,问我能不能给他做一个计算BMI的工具(无中生友).于是用Java简单写了一个.一起来看看吧. 身体质量指数是BMI指数(身体质量指数,简称体质指数),是 ...

  6. java小应用_java小应用

    第一次使用简书记笔记,主要目的是为了加深印象,方便忘记时及时翻看. hello.java 代码如下: import java.applet.Applet; import java.awt.*; pub ...

  7. 51单片机可以用来练手的60个小设计

    60个51单片机可以用来练手的小设计 最近题主在温习关于51的一些知识,所以自己在网上搜集了一些小设计感觉还可以,大家可以试一试做练手 同样的设计也可以为其他单片机提供一定的设计思路 1 电子秤设计: ...

  8. pyqt5练手项目-抖音小姐姐短视频下载

    pyqt5=Python+ qt,这块的资料现在慢慢多起来了,这里给大家送一个小的demo用来练手. 里面技术点: 1)控件 Pushbutton的使用: 2)pyqt5线程的用法; 3)界面和逻辑分 ...

  9. java项目逻辑重要吗_JAVA小项目,逻辑+感觉+总结?java小白你做到了吗(源码+教程)...

    俗话说的好,一如JAVA深似海.听起来好像胡说八道,其实却是很实在. 学过java的人都知道,java分支多,知识点十分丰富,单单论基础知识,也够学一壶的了,很多人在学习基础的时候已经被基础知识烦倒, ...

  10. java实践项目_20个Java练手项目,实践才是硬道理

    JAVA基础 Java编程语言(新版 2. Java进阶之设计模式 3. JDK 核心 API 4. MySQL 基础课程 5. 正则表达式基础 6. JDBC 入门教程 J2SE & SSH ...

最新文章

  1. 读《杜拉拉升职记》有感
  2. SQLite的Pragma语句
  3. 35.页面置换算法有哪些?
  4. 阿里神器 Arthas 有多强?教你一招定位线上Bug!
  5. 快递鸟电子面单打印功能基于java
  6. 原来微信可以自定义!把这些功能全关闭后 真清爽!
  7. 面试—每日一题(3)
  8. IT 工作者如何写交接文档
  9. 物联网操作系统的概念和特点
  10. 第二本书:疯狂人类进化史20190620
  11. 如何修改Julia语言环境的安装包默认安装文件夹的位置
  12. SD-WAN,改善网络现状
  13. 少儿学编程系列 --- 如何让ChatGPT使用turtle画画
  14. 计算机毕业设计php小说阅读网站
  15. 如何将视频里的音乐提取出来
  16. 自动驾驶技术之——被低估的传感器超声波雷达
  17. 晨兴刘芹:避开同质化竞争 看好云适配技术创新
  18. bulk怎么使用oracle,oracle学习之bulk collect用法
  19. Java关键字(48个关键字、2个保留字、3个特殊直接量)
  20. python 支付宝接口_python调用支付宝支付接口流程

热门文章

  1. 【转】requests、BeautifulSoup使用总结
  2. 解决 ThinkPad x270 安装 ubuntu 14.04 后的网络问题
  3. iOS自动布局高级用法 纯代码约束写法
  4. Resource is out of sync with the file system
  5. 如何使用.NET清除IE的缓存(Temporary Internet Files)
  6. 龙星计划机器学习笔记
  7. 拓端tecdat|如何在R语言中建立六边形矩阵热图heatmap可视化
  8. 拓端tecdat|Python中的Apriori关联算法-市场购物篮分析
  9. 拓端tecdat|matlab估计arma garch 条件均值和方差模型
  10. 拓端tecdat|R语言混合时间模型预测对时间序列进行点估计