2016-11-22 38 views
-6

我想一个问题是:从一个数组即每一行具有相同的字符 打印由线重复值线印刷重复的字符与字符相同的线

实施例:

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 
+3

哪里是你的代码? – Spotted

+0

请不要发布任何问题,请参考[问] – AxelH

+0

什么语言?它似乎不是Java或JavaScript ... – Adam

回答

0

您需要确保输入首先排序,即使用数组。分类()。一旦它可以循环输入并打印每个字符。每当下一个字符不同时打印一个新行。

另一种选择是创建某种类型的每个字符计数的存储,例如, 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

0

这可能会帮助你...伏法

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 –

相关问题