今天是周四,感觉还是没啥特别的事情发生,毕竟,如果每天都发生特别的事情那得多累啊。杭州市的应届生补助通道开启了,能拿一万块钱呢,感觉有点开心,这钱还是老老实实给老妈比较好,还欠着好多房租没还呢。JAVA基础差不多要学完了?基本的语法什么的都搞定了,那下一步该干什么呢,说不好,写那个APP感觉还是写不出来,有点太难了。那该怎么和导师开口说我写不出来啊。。。想不出该怎么说,蛋疼哦。这样吧,明天把尾巴收好,然后自己先写那个查快递的吧,这个接玩安卓的APP感觉还是太难写了。就这样,要睡觉了,明天就是周五了,又要放假了,开心。

package homework;

/**
 * 给出一句英文句子: "let there be light"
 * 得到一个新的字符串,每个单词的首字母都转换为大写
 */
public class Test {
    public static void main(String[] args) {
        String sentence = "let there be light";
        char[] str = sentence.toCharArray();
        for (int i = 0;i < str.length;i++){
            if(i == 0 || Character.isLetter(str[i]) && Character.isWhitespace(str[i-1])){
                str[i] = Character.toUpperCase(str[i]);
            }
        }
        System.out.println(str);
    }

}
package homework;

/**
 * 英文绕口令
 * peter piper picked a peck of pickled peppers
 * 统计这段绕口令有多少个以p开头的单词
 */
public class Test {
    public static void main(String[] args) {
        String sentence = "peter piper picked a peck of pickled peppers";
        String[] str = sentence.split(" ");
        int sum = 0;
        for (int i = 0;i < str.length;i++){
            if (str[i].charAt(0) == 'p'){
                sum++;
            }
        }
        System.out.println(sum);
    }

}
package homework;
/**
 * 把 lengendary 改成间隔大写小写模式,即 LeNgEnDaRy
 */
public class Test {
    public static void main(String[] args) {
        String sentence = "lengendary";
        char letter[]=sentence.toCharArray();
        for (int i = 0;i < letter.length;i++){
            if(i%2==0) {
                letter[i] = Character.toUpperCase(letter[i]);
            }
            System.out.print(letter[i]);
        }
        //也可以这么输出
        String string = new String(letter);
        System.out.println(string);

    }

}
package homework;
/**
 * 把 lengendary 改成间隔大写小写模式,即 LeNgEnDaRy
 */
public class Test {
    public static void main(String[] args) {
        String sentence = "lengendary";
        char letter[]=sentence.toCharArray();
        for (int i = 0;i < letter.length;i++){
            if(i == letter.length - 1) {
                letter[i] = Character.toUpperCase(letter[i]);
            }
            System.out.print(letter[i]);
        }


    }

}
package homework;
/**
 * 把 lengendary 最后一个字母变大写
 */
public class Test {
    public static void main(String[] args) {
        String sentence = "lengendary";
        char letter[]=sentence.toCharArray();
        for (int i = 0;i < letter.length;i++){
            if(i == letter.length - 1) {
                letter[i] = Character.toUpperCase(letter[i]);
            }
            System.out.print(letter[i]);
        }


    }

}
package homework;
/**
 * Nature has given us that two ears,
 * two eyes, and but one tongue,
 * to the end that we should hear and see more than we speak
 * 把最后一个two单词首字母大写
 */
public class Test {
    public static void main(String[] args) {
        String sentence = "Nature has given us that two ears, " +
                "two eyes, " +
                "and but one tongue, " +
                "to the end that we should hear and see more than we speak";
        int position = sentence.lastIndexOf("two");
        char[] str = sentence.toCharArray();
        str[position] = Character.toUpperCase(str[position]);
        String string = new String(str);
        System.out.println(string);
    }

}
package homework;

/**
 * 特例
 * 一般说来,编译器每碰到一个字符串的字面值,就会创建一个新的对象
 * 所以在创建了一个新的字符串"hello"
 * 但是编译器发现已经存在现成的"hello",那么就直接拿来使用,而没有进行重复创建
 */
public class Test {
    public static void main(String[] args) {
        String str1 = "the light";
        String str2 = new String(str1);

        // ==是判断内存地址是否相同
        System.out.println(str1 == str2);
        //equals方法判断值是否相同
        System.out.println(str1.equals(str2));

        String string1 = "hello";
        String string2 = "hello";
        System.out.println(string1 == string2);
    }

}
package homework;

import java.util.Random;
import java.util.Scanner;

/**
 * String与StringBuffer的性能区别?
 *
 * 生成10位长度的随机字符串
 * 然后,先使用String的+,连接10000个随机字符串,计算消耗的时间
 * 然后,再使用StringBuffer连接10000个随机字符串,计算消耗的时间
 * StringBuffer同理,写两个函数不知道为啥特别难看,不写了
 * StringBuffer耗时18ms,String耗时335ms
 */
public class Test {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int length = in.nextInt();
        int num = 10000;
        double startTime = System.currentTimeMillis();
        String string = getString(length);
        for (int i = 0;i <= num;i++){
            string += getString(length);
        }
        double spentTime = (System.currentTimeMillis() - startTime);
        System.out.println(spentTime);
    }
    private static String getString(int length){
        Random random = new Random();
        String string = new String();
        for (int i = 0;i < length;i++){
            int number = random.nextInt(3);
            int result = 0;
            switch (number){
                //case0是输出数字
                case 0:
                    result = (int)(Math.random() * 10 + 48);
                    char s = (char) result;
                    string += s;
                    break;
                //case1是输出小写字母
                case 1:
                    result = (int)(Math.random() * 26 + 97);
                    char s1 = (char) result;
                    string += s1;
                    break;
                case 2:
                    result = (int)(Math.random() * 26 + 65);
                    char s2 = (char) result;
                    string += s2;
                    break;
                default:
                    break;
            }
        }
        return string;
    }

}