JAVA语言算法(基础练习)
小标 2018-07-13 来源 : 阅读 990 评论 0

摘要:本文主要向大家介绍了JAVA语言算法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言算法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

一、输入一个字符串,判断是否为回文,回文就是从左往右读跟从右往左读是一样的,如:abcba;

 主要思路: 

 1.从键盘上输入字符串;

  2.将利用循环,判断字符串第一个与倒数第一个是否一样,第二个与倒数第二个是否一样,以此类推,循环字符串长度的一半;

  方法一:

 

                Scanner sn=new Scanner(System.in);

 

 

System.out.println("please enter you char :");

 

 

String str=sn.nextLine();

 

 

 

 

 

int count=0;

 

 

int length=str.length();

 

 

for (int i = 0; i < length/2; i++) {

 

 

if(str.charAt(i)==str.charAt(length-i-1)){

 

 

count++;

 

 

}

 

 

}

 

 

if(count==length/2){

 

 

System.out.println("the char is huiwen");

 

 

}else{

 

 

System.out.println("the char isn't huiwen");

 

 

}

 


方法二:

 

        Scanner sn=new Scanner(System.in);

 

 

System.out.println("please enter you char :");

 

 

String str=sn.nextLine();

 

 

StringBuffer sb=new StringBuffer(str);

 

 

sb.reverse();

 

 

int count=0;

 

 

int length= str.length();

 

 

for (int i = 0; i <length/2 ; i++) {

 

 

if(str.charAt(i)==sb.charAt(i)){

 

 

count++;

 

 

}

 

 

}

 

 

if(count==length/2){

 

 

System.out.println("the char is huiwen");

 

 

}else{

 

 

System.out.println("the char isn't huiwen");

 

 

}  

 

 这里也可直接判断str.equals(sb); 因为reverse()方法可以翻转字符串,与回文是一样的道理;

   执行结果:

          

            

二、输入一个整形数组,找出数组中第二大的数;

  

    主要实现方式:

           1.从键盘输入数组;

              [1 ] 创建一个字符串获取输入的值;

              [2 ] 创建一个字符串数组,将字符串用空格隔开放入数组中;

              [3 ] 创建整形数组,长度为字符串数组的长度;

              [4 ] 循环字符串数组,将元素类型转换放入整形数组中;

           2.创建两个参数令他们等于数组的第一个数,然后循环数组,判断第一大的 数和第二大的数,下列代码就能很直观的看出来了;

  

 

System.out.println("请输入整形数组:");

 

 

sn = new Scanner(System.in);

 

 

String m=sn.nextLine();

 

 

String [] arry=m.split(" ");

 

 

int [] a=new int[arry.length];

 

 

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

 

 

a[i]=Integer.parseInt(arry[i]);

 

 

}

 

 

 

 

 

//判断第一大的数,和第二大的数

 

 

int max_second;

 

 

int max=max_second=a[0];

 

 

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

 

 

if(a[i]>max_second){

 

 

if(a[i]>max){

 

 

max_second=max;

 

 

max=a[i];

 

 

}else{

 

 

max_second=a[i];

 

 

}

 

 

}

 

 

}

 

 

System.out.println("max_second = "+max_second+"\n"+"max = "+max);

 

  执行结果:

                

 

三、输入一个数n然后求n!;

 

     利用返回值的方式,相当于做for循环求阶乘;

 


 

 

public static long fac(int num){

 

 

if(num<=0){

 

 

return 0;

 

 

}

 

 

if(num==1){

 

 

return 1;

 

 

}

 

 

return num*fac(num-1);

 

 

}

 

 

四、有四个数字1,2,3,4 求出他们排列组合出的几个不相同的四位数;

          

 

int i ,j ,k,l;

 

 

int n=0;

 

 

for (i = 1; i<=4; i++) {

 

 

for (j = 1; j<= 4; j++) {

 

 

for (k = 1; k<= 4; k++) {

 

 

for(l=1;l<=4;l++){

 

 

if(i!=j&&j!=k&&k!=i&&j!=l&&i!=l&&k!=l){

 

 

n++;

 

 

System.out.println(""+i+""+j+""+k+""+l);

 

 

}

 

 

}

 

 


 

 

}

 

 

}

 

 

}

 

 


 

 

System.out.println("num = "+n);

 

 

五、统计文章里不同的单词数,然后输出单词数的多少;

 

 

ArrayList<Integer> countLists=new ArrayList<Integer>();

 

 

int count;

 

 

HashMap<String, String> m;

 

 

String str;

 

 

String[] a;

 

 

System.out.println("请输入要检索的文章:");

 

 

Scanner sc=new Scanner(System.in);

 

 

while(!(str=sc.nextLine()).equals("#")){

 

 

a=str.split(" ");

 

 

m=new HashMap<String,String>();

 

 

count=0;

 

 

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

 

 

if(!m.containsKey(a[i])&&(!a[i].equals(" "))){

 

 

m.put(a[i], ""+count);

 

 

count++;

 

 

}

 

 


 

 

countLists.add(count);

 

 

}

 

 

System.out.println(count);

 

 

}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程