印刷重复的字符与字符相同的线
问题描述:
我想一个问题是:从一个数组即每一行具有相同的字符 打印由线重复值线印刷重复的字符与字符相同的线
实施例:
char[] arr1={a,a,a,a,b,b,b,b,c,c,c,c,e,e,g,f,h};
输出应该是这样的:
aaaa
bbbb
cccc
ee
g
f
h
答
您需要确保输入首先排序,即使用数组。分类()。一旦它可以循环输入并打印每个字符。每当下一个字符不同时打印一个新行。
另一种选择是创建某种类型的每个字符计数的存储,例如, LinkedHashMap(),但那会超过工程IMO。
char[] arr1 = { 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'c', 'c', 'c', 'c', 'e', 'e', 'g', 'f', 'h' };
Arrays.sort(arr1);
for (int i = 0; i < arr1.length; i++) {
char each = arr1[i];
System.out.print(each);
if (i + 1 < arr1.length && arr1[i + 1] != each) {
System.out.println();
}
}
输出
aaaa
bbbb
cccc
ee
f
g
h
+0
非常感谢你两种方式工作正常。 – madan
答
这可能会帮助你...伏法
class Arr12
{
public static void main(String[] args)
{ char[] arr1=new char[] {'a','a','a','a','b','b','b','b','c','c','c','c','e','e','g','f','h'};
String text = String.copyValueOf(arr1);//Converting Char[] to String
String[] strArr= text.split("(?<=(.))(?!\\1)");//This is Regular Expression
for (int i=0;i<strArr.length ;i++)//Printing
{
System.out.println(strArr[i]);
}
}
}
+0
如果你了解上述解决方案,请接受它@dan –
哪里是你的代码? – Spotted
请不要发布任何问题,请参考[问] – AxelH
什么语言?它似乎不是Java或JavaScript ... – Adam