一、创建一个静态方法,给它传入一个对象,请循环的打印出该对象所在类的类名和所实现的方法名(华为笔试最后一道编程)   
 二、假设字符串类似这样的aba和aab就相等,现在随便给你二组字符串,请编程比较他们看是否相等   
 三、给你一组字符串如:iu7i8hy4jnb2,让你编程输出里面的数字:7842   
 四、给你一组字符串让你把它倒叙输出   
 五、给你一组字符如{1,3,4,7,2,1,1,5,2},让你输出里面出现次数最多且数值最大的一个,出现几次  

解决方案 »

  1.   

    一、反射
    二、将两个字符串分解成字符数组,排序,然后将两个字符数组转换成串比较
    三、"iu7i8hy4jnb2".replaceAll("([a-z])","");
    四、String test = "abcdefg";
    StringBuffer sb = new StringBuffer(test);
    System.out.println(sb.reverse().toString());五、这道题在这个星期在CSDN出现了太多次在~~
      

  2.   

    一 public static void function(Object o) {
    System.out.println(o.getClass().getName());
    Method[] m = o.getClass().getDeclaredMethods();
    for (int i = 0; i < m.length; i++) {
    System.out.println(m[i].getName());
    }
    }
      

  3.   

    除了第一题 其他 都不是很难。。
    2.排序 放到 hashset中 就可以找到了
    3.不一定要正则,转成 charArray 判断一下ascii码就可以了
    4倒序 就更简单了
    5 map key,value,相同key value++;
      

  4.   

    5. 用map是大材小用啊。。呵呵 直接 比较即可、。、、
      

  5.   

    三 public static void function(String s) {
    s = s.replaceAll("[^0-9]", "");
    System.out.println(s);
    }
      

  6.   

    二 public static void function(String a, String b) {
    if (a.length() != b.length()) {
    System.out.println("不相等");
    return;
    }
    char[] aa = a.toCharArray();
    char[] bb = b.toCharArray();
    Arrays.sort(aa);
    Arrays.sort(bb);
    for (int i = 0; i < aa.length; i++) {
    if (aa[i] != bb[i]) {
    System.out.println("不相等");
    return;
    }
    }
    System.out.println("相等");
    } public static void main(String[] args) {
    T.function("abaca", "acaba");
    }
      

  7.   


    package com.test.csdn;import java.lang.reflect.Method;
    import java.util.Arrays;
    import java.util.regex.Pattern;public class Example { public static void main(String[] args) {
    User user = new User();
    System.out.println("============第一题=================");
    showInfo(user);
    System.out.println("============第二题=================");
    System.out.println(getNumeric("iu7i8hy4jnb2"));
    System.out.println("============第三题=================");
    System.out.println(reverseStr("我的祖国"));
    System.out.println("============第四题=================");
    System.out.println(isEquals("aab","aca")); }

    static void showInfo(Object obj){
    Class<?> clazz = obj.getClass();
    System.out.println("该对象所在的类名: " + clazz.getName());
    Method[] methods = clazz.getDeclaredMethods();
    for(Method m: methods){
    System.out.println("所实现的方法名:" + m);
    }
    }

    static boolean isEquals(String a, String b){
    if(a.length() != b.length()){
    return false;
    }
    char[] s1 = a.toCharArray();
    char[] s2 = b.toCharArray();
    Arrays.sort(s1);
    Arrays.sort(s2);
    for(int i = 0; i < s1.length; i++){
    if(s1[i] != s2[i]){
    return false;
    }
    }
    return true;
    }

    static String getNumeric(String str){
    return str.replaceAll("[^0-9]", "");

    }

    static String reverseStr(String str){
    StringBuffer sb = new StringBuffer(str);
    return sb.reverse().toString();
    }
    }
      

  8.   

    一、创建一个静态方法,给它传入一个对象,请循环的打印出该对象所在类的类名和所实现的方法名(华为笔试最后一道编程)  
    二、假设字符串类似这样的aba和aab就相等,现在随便给你二组字符串,请编程比较他们看是否相等  
    三、给你一组字符串如:iu7i8hy4jnb2,让你编程输出里面的数字:7842  
    四、给你一组字符串让你把它倒叙输出  
    五、给你一组字符如{1,3,4,7,2,1,1,5,2},让你输出里面出现次数最多且数值最大的一个,出现几次   
     
     
      

  9.   

    一下 感觉这些小题 对JavaSE的全面了解 很有帮助public static void main(String[] arg) {
     String s="iu7i8hy4jnb2";
     char[] c=s.toCharArray();
     for (int i = 0; i < c.length; i++) {
    if(c[i]<='9'&&c[i]>='0'){
    System.out.print(c[i]);
    }
    }
      }
    public static void main(String[] arg) {
    String s = "iu7i8hy4jnb2";
    StringBuffer sb = new StringBuffer(s);
    System.out.println(sb.reverse().toString());
    }
      

  10.   

    5.给你一组字符如{1,3,4,7,2,1,1,5,2},让你输出里面出现次数最多且数值最大的一个,出现几次 
    public static void main(String[] arg) {
    Integer arr[]=new Integer[]{1,3,4,7,2,1,1,5,-1,1,2,5,6,7};
    Map<Integer,Integer> map=new HashMap<Integer,Integer>();
    for (int i = 0; i < arr.length; i++) {
    if(map.get(arr[i])==null){
    map.put(arr[i], 1);
    }
    else{
    Integer count=map.get(arr[i]);
    map.put(arr[i], ++count);
    }
    }

    Set<Integer> keys=map.keySet();
    for (Integer key : keys) {
    System.out.println(key+"->"+map.get(key));
    }
    }
      

  11.   

    华为这题考的目的不是应用java提供的现成的方法,而是要自己去实现。
    华为代码鉴定考试要求不能使用已提供好的方法。
    一个月前我考的就跟这几个差不多。
    我的理解他考的真正意图是看笔试者的思想。学好java基础,灵活应用,以不变应万变。
    我也是个菜鸟,哈哈
      

  12.   

    二、假设字符串类似这样的aba和aab就相等,现在随便给你二组字符串,请编程比较他们看是否相等 
    关于这个我觉得这样:
    先判断是不是长度一个.
    然后
        char[] aa = a.toCharArray();
            char[] bb = b.toCharArray();
            Arrays.sort(aa);
            Arrays.sort(bb);
    下面这段换一下
    /* for (int i = 0; i < aa.length; i++) {
                if (aa[i] != bb[i]) {
                    System.out.println("不相等");
                    return;
                }
            }
            System.out.println("相等");
    */
    String aaa=new String(aa);
    String bbb=new String(bb);
    if(aaa.equals(bbb)) 相等
      

  13.   

    第一道题目参考这里:http://tidus2005.javaeye.com/blog/460648
    二、public class test3 {
           public static void main(String[] args) {
         String a="abc";
         String b="cbe";
         String c="bec";
         System.out.println(compare(a, b)==true?"相等":"不相等");
         System.out.println(compare(c, b)==true?"相等":"不相等");
    }
           
           static Boolean compare(String a,String b){
         char []ch_a=a.toCharArray();
            char []ch_b=b.toCharArray();
            TreeSet t=new TreeSet();
            for (int i = 0; i < ch_a.length; i++) {
        t.add(ch_a[i]);
        }
            for (int i = 0; i < ch_a.length; i++) {
        t.add(ch_b[i]);
        }
            if(ch_a.length==t.size())
         return true;
         else
         return false;
           }
    }
    三、import java.util.ArrayList;
    import java.util.Iterator;public class test3 {    public static void main(String[] args) {
    System.out.println(num("iu7i8hy4jnb2"));
    }
        static int num(String a){
         int num=0;
         byte[] temp=a.getBytes();
         ArrayList array=new ArrayList(temp.length);
         for (int i = 0; i < temp.length; i++) {
         Byte b=new Byte(temp[i]);
         if(b.intValue()<=57&&b.intValue()>=48)
         array.add(new Integer(b.intValue()-48));
    }
         Iterator<Integer> i=array.iterator();
         for (int j =array.size(); j >0; j--) {
        
    num=(int) (num+i.next().intValue()*Math.pow(10, j-1));
    }
         return num;
        }
    }
    四、
    public class dao {
        public static void main(String[] args) {
    System.out.println(change("iu7i8hy4jnb2"));
    }
        static String change(String a){
         byte[] temp1=a.getBytes();
         byte[] temp2=new byte[temp1.length];
         for (int i = 0; i < temp2.length; i++) {
    temp2[i]=temp1[temp2.length-i-1];
    }
        
         return new String(temp2);
        }}
    五、看不明白哪个优先
      

  14.   


    12楼的代码很多bug的。你不信试下把12楼那个人的代码中的        System.out.println("============第四题=================");
            System.out.println(isEquals("aab","aca"));改为        System.out.println("============第四题=================");
            System.out.println(isEquals("aaeebe","eaecea"));
      

  15.   

    // BUG是有的.. 但我总共回答了4道题 除了Equals还有别的么?忘指正... 还有不是什么问题 写一堆代码就表示没问题...
      

  16.   

    第五题刚刚没看,现在补充import java.util.Iterator;
    import java.util.TreeSet;public class Amount_Large {
    public static void main(String[] args) {
    int []a=new int[]{1,3,4,7,7,7,7,2,1,1,5,2,5,5};
    structure s=find(a);
    System.out.println("出现次数:"+s.getCount()+"  该数字是:"+s.getNum()); }
    static structure find(int []a){
            int []temp=a;
            int count=0;
            TreeSet t=new TreeSet();
          
            for (int i = 0; i < temp.length; i++) {
    t.add(temp[i]);
    }
            structure s=new structure();
            Iterator<Integer>i=t.iterator();
            while (i.hasNext()) {
             int num= i.next().intValue();
               for (int j = 0; j < temp.length; j++) {
           if (num==temp[j]) {
           count++;
           }
           }
           if(count>s.getCount()){
           s.setCount(count);
           s.setNum(num);
        }
           count=0;

    }
          
    return s;
    }
    }
    class structure{
    int count;
    int num;
    public int getCount() {
    return count;
    }
    public void setCount(int count) {
    this.count = count;
    }
    public int getNum() {
    return num;
    }
    public void setNum(int num) {
    this.num = num;
    }
    }