java第11次作业

一、题目

题目1:编写一个应用程序,统计输入的一个字符串中相同字符的个数,并将统计结果输出。

题目2:编写程序,输入一个字符串,判断该串中的字母能否组成一个回文串(回文串:一个字符串从前向后读取和从后向前读取都一样)。如:ab<c>c?ba

二、代码

package wenbowindf.ScamnnerSameString;

public class Demo {//借鉴谢晓飞的代码,具体代码流程已虚心向本人学习,且已融会贯通,全部基础代码已注释完毕

	public static void main(String[] args) {
		Palindrome.Palindrome("abcba");
		CompareStrings.getNum("老师,请提问我寝室大哥-张九川");
	}

}

  

package wenbowindf.ScamnnerSameString;

import java.util.Iterator;
import java.util.LinkedList;

public class CompareStrings {//比较字符串中有多少个相同字符
	 public static void getNum(String s) {

	        LinkedList<Character> link = new LinkedList<Character>();//创建一个集合link
	        int []num = new int[100] ;                               //创建一个名为num的100长度的一维数组
	        int count = 0;                                           //创建一个变量count,赋值初始值0
	        int index = 0;                                           //创建一个变量index,赋值初始值0
	        int index1 = 0;                                          //创建一个变量index,赋值初始值0
	        for(int i = 0; i < s.length(); i++) {                    //遍历字符串s
	               for(int j = 0; j < s.length(); j++) {
	                   if (s.charAt(i)==s.charAt(j)){                //判断s中字母是否相同
	                       count++;                                  //如果i相同的话就count++
	                   }
	               }
	            if(!(link.contains(s.charAt(i)))) {                  //s中第i位的字母是否在集合link中出现
	               link.add(s.charAt(i));                            //link中没有s中第i位的字母就把该字母装进link
	                num[index++]=count;                              //把count的值赋给数组num的第index位
	            }
	        }
	        Iterator<Character> it = link.iterator();                //打印link结合
	        while(it.hasNext()) {                                    //利用it.hasNext方法,判断link集合里是否有值,有的话就执行下面语句体
	            System.out.println(it.next()+":"+num[index1++]);     //it.next()的意思是返回迭代的下一个元素
	            index++;
	        }
	    }
}

  

package wenbowindf.ScamnnerSameString;

public class Palindrome {
	 public static void Palindrome(String s) {
	        char arry[] = s.toCharArray();   //字符串转化为字符数组
	        boolean judge = true;             //定义一个judge变量为ture
	        int l = arry.length;
	        for(int i =0;i<l;i++) {          
	            if(arry[i]!=arry[l-i-1]) {//判断数组里第i位与第l-i-1位是否相同
	            	judge = false;        //相同就赋judge为false
	            }
	        }
	        if(judge) {                
	            System.out.println(s+"是回文");
	        }else {
	            System.out.println(s+"不是回文");
	        }
	    }
}

  

  

 三、运行结果


 

 


 

posted on 2019-11-20 21:21  心灵老鸭汤  阅读(134)  评论(0编辑  收藏  举报