2016-05-26 10 views
-6

私は割り当てがありますか?11234aBcDという文字列があり、出力は1a1B2c3D4でなければなりません。私が行った2番目の出力。そして私はjavaを使ってやる必要があります。必要条件は、出力に1つの数字の後ろに1つの数字とそれに続く数字などが表示されます。

私は私のコード追加してい:私を助けていないため

package Testx; 

    import java.util.Arrays; 
    import java.util.Comparator; 
    import java.util.Scanner; 

    public class Test3optmz { 

    public static void main(String[] args) 
    { 
    // TODO Auto-generated method stub 
    Scanner gaba = new Scanner(System.in); 
    String variable; 
    System.out.print("Enter String:"); 
    variable = gaba.nextLine(); 
    SeparateGaba(variable); 

    } 
    public static void SeparateGaba(String str) 
    { 
    String Catch_num = ""; 
    String Catch_let = ""; 
    String upper=""; 
    String lower=""; 
    String holdl=""; 
    String holdn=""; 

    for (int i = 0; i < str.length(); i++) 
    { 
      char a = str.charAt(i); 
      if (Character.isDigit(a)) 
      { 
       Catch_num = Catch_num + a; 
      } else 
      { 
       Catch_let = Catch_let + a; 
      }  
    } 

    System.out.println("FIRST OUTPUT:"+Catch_num+Catch_let);// i am separating the numbers and alphabets 

    for(int j=0;j <Catch_let.length();j++) 
    { 
     char x = Catch_let.charAt(j); 
     if (Character.isUpperCase(x)) 
     { 
       upper += x; 
     } 
     else 
     { 
       lower += x; 
     } 
    } 

    char[] num = Catch_num.toCharArray(); 
    Arrays.sort(num); 
    String n =new String(num); 

    char[] ordr = lower.toCharArray(); 
    Arrays.sort(ordr); 
    String alfa1 =new String(ordr); 

    char[] ord = upper.toCharArray(); 
    Arrays.sort(ord); 
    String alfa =new String(ord); 

    String t= alfa1 + alfa; 

    char [] fin = t.toCharArray(); 
    Arrays.sort(fin); 
    String fal = new String(fin); 

    Character[] chars = new Character[fal.length()]; 
    for (int f=0; f < fal.length();f++) 

     chars[f] = fal.charAt(f); 

     Arrays.sort(chars, new Comparator<Character>() 
     { 
     public int compare(Character c1, Character c2) 
     { 
      int cmp = Character.compare(
        Character.toLowerCase(c1.charValue()), 
        Character.toLowerCase(c2.charValue()) 
       ); 
      if (cmp != 0) return cmp; 
      return Character.compare(c1.charValue(), c2.charValue()); 
     } 
     }); 

     StringBuilder sb = new StringBuilder(chars.length); 
     for (char c : chars) sb.append(c); 
     fal = sb.toString(); 
     System.out.println("SECOND OUTPUT= "+n+fal);// now i am arranging the alphabet in ascending order avoiding capital and small ex 1234eBaC it will come as 1234aBce 

     } 
     } 
+4

これは、コードの書き込みサービスではありません助けました。これまでに試したことを含めてください。 – Arc676

+0

私は作業しているコードがあります –

+0

あなたのコードは非常に複雑に見えます。あなたが何をする必要があるか考えてみましょう:文字列の次の数字を見つけ出し、それを出力に追加します。文字列の次の非数字を見つけ出し、それを出力に追加します。あなたが入力文字列を使い果たすまで繰り返されます。 OK –

答えて

0

も感謝し、私は私の自己

import java.util.ArrayList; 
    import java.util.Arrays; 
    import java.util.Comparator; 
    import java.util.List; 
    import java.util.Scanner; 

    public class Test4 { 

    public static void main(String[] args) 
    { 
    // TODO Auto-generated method stub 
    Scanner gaba = new Scanner(System.in); 
    String variable; 
    System.out.print("Enter String:"); 
    variable = gaba.nextLine(); 
    SeparateGaba(variable); 

    } 
    public static void SeparateGaba(String str) 
    { 
    String Catch_num = ""; 
    String Catch_let = ""; 
    String upper=""; 
    String lower=""; 
    for (int i = 0; i < str.length(); i++) 
    { 
      char a = str.charAt(i); 
      if (Character.isDigit(a)) 
      { 
       Catch_num = Catch_num + a; 
      } else 
      { 
       Catch_let = Catch_let + a; 
      }  
    } 

    System.out.println("FIRST OUTPUT:"+Catch_num+Catch_let); 

    for(int j=0;j <Catch_let.length();j++) 
    { 
     char x = Catch_let.charAt(j); 
     if (Character.isUpperCase(x)) 
     { 
       upper += x; 
     } 
     else 
     { 
       lower += x; 
     } 
    } 

    char[] num = Catch_num.toCharArray(); 
    Arrays.sort(num); 
    String n =new String(num); 

    char[] ordr = lower.toCharArray(); 
    Arrays.sort(ordr); 
    String alfa1 =new String(ordr); 

    char[] ord = upper.toCharArray(); 
    Arrays.sort(ord); 
    String alfa =new String(ord); 

    String t= alfa1 + alfa; 

    char [] fin = t.toCharArray(); 
    Arrays.sort(fin); 
    String fal = new String(fin); 

    Character[] chars = new Character[fal.length()]; 
    for (int f=0; f < fal.length();f++) 

     chars[f] = fal.charAt(f); 

     Arrays.sort(chars, new Comparator<Character>() 
     { 
     public int compare(Character c1, Character c2) 
     { 
      int cmp = Character.compare(
        Character.toLowerCase(c1.charValue()), 
        Character.toLowerCase(c2.charValue()) 
       ); 
      if (cmp != 0) return cmp; 
      return Character.compare(c1.charValue(), c2.charValue()); 
     } 
     }); 

     StringBuilder sb = new StringBuilder(chars.length); 
     for (char c : chars) sb.append(c); 
     fal = sb.toString(); 
     System.out.println("SECOND OUTPUT= "+n+fal); 
     /*GABA come on let seeeeeeeee*/ 
     try 
     { 
     for(int i=0;i<n.length();i++) 
     { 
      char a= n.charAt(i); 

      System.out.print(a); 

      for(int j=0; j<fal.length();j++)//1 
      { 
       char b = fal.charAt(j); 
       if(j>=i) 
       { 
       System.out.print(b); 
        break; 
       } 
      } 
      } 

      } 
      catch(Exception e) 
     { 
     System.out.println("Your letter length should match with char len"); 
     } 

     } 
     } 


     Enter String:14a5Bc 
     FIRST OUTPUT:145aBc 
     SECOND OUTPUT= 145aBc 
     THE out put i was looking for --->1a4B5c 
関連する問題