Java小练习-字符串比较

创建一个长度是100的字符串数组
使用长度是2的随机字符填充该字符串数组
统计这个字符串数组里重复的字符串有多少种

package charactor;

public class TestString{
	public static void main(String[] args) {
		String[] table=new String[100];
		System.out.println("随机字符串为:");
		for (int i = 0; i < table.length; i++) {
			int len=2;
			table[i]=getRandomString(len);
			System.out.print(table[i]+" ");//获取随机字符串数组并打印
		}
		String repeat="";//找到重复的字符串并打印
		int count=0;
		for (int i = 0; i < table.length; i++) {
			for (int j = i+1; j < table.length; j++) {
				if (table[i].equals(table[j])) {
					if (repeat.contains(table[i])) {
						continue;
					}
					count+=1;
					repeat=repeat+table[i]+" ";
				}
			}
		}
		System.out.println("\n");
		System.out.print("重复的字符串有"+count+"种,分别是:"+repeat);
	}
	
	
	
	public static String getRandomString(int len) {//获取随机字符串数组元素的方法
		char[] ch=new char[len];
		for (int i = 0; i < len; i++) {
			int k=0;
			while(k<len){
				int m=(int) (48+Math.random()*75);//random产生的随机数在[0.0,1.0)中,左闭右开。取74的话就取不到122
				if((48<=m && m<=57) || (65<=m && m<=90) || (97<=m && m<=122) )  {
					ch[i]=(char)m;
					k++;
				}
			}
		}
//		String str=Arrays.toString(ch);//直接用ch.toString()会出错
		String str=new String(ch);//新建对象,用对象方法完成字符转字符串
		return str;
	}
	
	
}

一开始遇到了输出有空格的情况,经检查后在getRandomString(int len)中添加了k参数,用以确保每一个ch都被“填满”。注意,此处的k要对每一个字符数组都有一样的约束,所以放在for循环内。
此外,用Arrays.toString(ch)作为返回值的话,输出会是数组形式。目前认为这是一种快捷输出字符数组的方法,无需手写循环格式。

顺便转一下数组打印时遇到的问题。原文:https://blog.csdn.net/qq_33343480/article/details/52318966?utm_source=copy
1.数组打印
int []num = {1,2,3,4,5};

System.out.println(num.toString());

//输出:[I@15db9742

System.out.println(Arrays.toString(num));

//输出:[1, 2, 3, 4, 5]

int [][]nums = {{1,2},{3,4,5},{6,7}};

System.out.println(Arrays.toString(nums));

//输出:[[I@6d06d69c, [I@7852e922, [I@4e25154f]

System.out.println(Arrays.deepToString(nums));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值