1 没学过C吗?2的三次方啊 2<<3
2说的多了好
3一时写不出来啊 不过用JS到是能啊

解决方案 »

  1.   

    3 先用 String.split(" ");
      在得到的String数组中又没有标点
      

  2.   

    1. 2<<3  位运算的效率最高
    2. 看书上的就ok了。
    3. 等会做出来再帖上来
      

  3.   

    char f[] = {'I','t'};
        String s = new String(f);
        int length = s.length();
      

  4.   

    楼主需要对java的类有变通的认识。
      

  5.   

    编程题,就是定义一个输入流,每次读取一个字符,根据空格、标点符号作为一个单词结束的标志,然后把这几个字符进行合并,组成一个完整的单词,保存起来,可以用Arraylist作为保存单词的容器。
      

  6.   

    import java.io.*;
    public class Test{
    public static void main(String[] args) throws Exception{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str = br.readLine();
    if(str == null) throw new Exception("");
    char[] c = str.toCharArray();
    int words = 0;
    int ip = 0;
    boolean wordflag = false;
    for(int i=0;i<c.length;i++){
    if((c[i]>='a' && c[i] <= 'z') || (c[i] >= 'A' && c[i] <= 'Z')){
    if(wordflag) {
    continue;
    }else{
    words++;
    }
    wordflag = true;
    }else{
    wordflag = false;
    if(c[i] != ' ')
    ip++;
    }
    }
    System.out.println("words=" + words);
    System.out.println("ip=" + ip); }
    }
      

  7.   

    我是楼主,贴出这几个题目的本来用意也是希望大家能多指点兄弟一下。对于java语言本身我不是很熟悉,在此对楼上的各位表示感谢。第一个问题,我的考虑应该是 8>>1或者1>>4,我不是很能理解2>>3这样的操作。8的右移一位操作一次可以得到16,1右移4位操作四次也是16,当然还有2>>3.为什么解释为2>>3是最高效的算法呢?从操作次数上它不是最少,存储空间分配不明白,底层的操作也不懂,高手解答一下疑惑。
    第二个问题,书上看的比较多了。--------------------------------
    第三个问题的原题目是这样的:
    编写一个函数,传入一个变量char[],在char[]中,从数组开头或者空格符之后认为是一个表达式的开始,表达式后接空格或者数组结束或者标点符号认为表达式结束,若表达式全为英文字符则判定为单词,统计char[]标点符号数目,单词数目和有效单词的字符总数。
    此题目也期望能得到各位的指点
      

  8.   

    题目三表述还是有些问题呀,那It's 算几个单词啊? s 既不是数组开头,也不是空格符之后.
    private void count(char[] c){
    int words = 0;
    int ip = 0;
    int character = 0;
    boolean wordflag = false;
    for(int i=0;i<c.length;i++){
    if((c[i]>='a' && c[i] <= 'z') || (c[i] >= 'A' && c[i] <= 'Z')){
    character++;
    if(wordflag) {
    continue;
    }else{
    words++;
    wordflag = true;
    }
    }else{
    wordflag = false;
    if(c[i] != ' ')
    ip++;
    }
    }
    System.out.println("words=" + words);
    System.out.println("ip=" + ip);
    System.out.println("character=" + character);
    }
      

  9.   

    第二问题:
      hashtable ->dictionary class,是线程不安全,增长为原来的一半
      hashmap是map接口,是线程安全的, 增长时增长为原来的一倍
      

  10.   

    1.放入string中
    2.String.split(" ")求出单词数
    3.用replace函数,将26个字母,\r,\n,' ',分别替换为'',即空串
    4.此时求string的长度,即是标点数
      

  11.   

    to bhjsj(南南)
    程序中,若碰到非标点符号的特殊符号应予以处理。此表达式不能算做单词,比如bee$%ble.
    凭我的理解,$%这一类的特殊符号不应该算标点。
      

  12.   

    to  lasthope(学生)
    原题目要求在char[]中进行操作,所有对String对象的方法属性都不能使用。
    再者,String的长度怎么都不是标点数。
      

  13.   

    这样的面试我感觉确实有些为难人呵.是不是得对ASCII码得特别熟啊,哪些算标点符号,哪些是特殊符号,在ASCII码中是什么位置得清楚吧,
    等待高人.
      

  14.   

    是的,转换之后虽然可以得到ascii码的值,不过又有谁能记得具体的每个字符编码?
    印象中好像是65->A,97->a,空格好像是32,其他都不记得了。
      

  15.   

    HashMap和Hashtable的区别。 
    都属于Map接口的类,实现了将惟一键映射到特定的值上。 
    HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。 
    Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。 
    用最有效率的方法算出2乘以8等於几?  
    有C背景的程序员特别喜欢问这种问题。  
    2 << 3  
      

  16.   

    2<<3,为什么效率是最高的,斑竹可不可以解释解释!!
      

  17.   

    好像没必要去管什么ASCII码吧?直接比较字符就行了...上面已经给出程序了.
      

  18.   

    呵,楼上兄弟给的程序考虑一下一些边界的条件看看会是什么?
    比如连续的两个空格,或者bbb@#aaa这样的表达式,此式应该判断为非法单词而且不应计算有效字符。