API

作者: 周书达 | 来源:发表于2018-08-19 09:02 被阅读0次

API

String 类【最终类】

[if !supportLists]1.      [endif]打印字符串中,某个元素出现的位置。

packagecn.tedu.string;

importjava.util.Scanner;

publicclass StringExer6

{

  @SuppressWarnings("resource")

  publicstaticvoid main(String[] args) {

    // 获取到了2个字符串

    Scanners = newScanner(System.in);

    Stringstr = s.next();

    Stringsub = s.next(); 

    // 记录位置

    intindex= 0; 

    // 找子串出现的位置,从第0开始向后依次找

    // 找到之后打印这个位置然后从当前位置的下一位继续寻找

    //abcda  a

    while(index

      // 从指定的位置开始找元素

      //index(字符,从第几位开始寻找)【找到为整数,找不到为-1】

      index = str.indexOf(sub,index);

      if(index != -1){

       System.out.println(index);

       index++;

      }else

      break;

    }

  }

}

[if !supportLists]2、[endif]输入一个字符串,输入一个数,按照“gbk”编码将字符串转化为这个数的长度。

packagecn.tedu.string;

importjava.util.Scanner;

publicclass StringExer5

{

  @SuppressWarnings("resource")

  publicstaticvoid main(String[] args) throws Exception {

    // 获取到一个字符串和一个数字

    Scanners = newScanner(System.in);

    Stringstr = s.next();

    intn = s.nextInt();

    // 将字符串转化为一个字节数组,拆分成存储单元然后进行判断最后一位

    byte[] bs = str.getBytes("gbk");

    // 根据指定的字节个数截取这个字符串

    Stringsub = new String(bs, 0, n, "gbk");

    // 确定子串的最后一位是否转化出来

    if (sub.charAt(sub.length() - 1) != str.charAt(sub.length() -

1))

      sub = new String(bs, 0, n - 1, "gbk");

    System.out.println(sub);

  }

}

[if !supportLists]3、[endif]获取一个字符串判断每个字符出现的次数

packagecn.tedu.string;

importjava.util.Scanner;

/**

 *输入一个字符串,统计其中每一个字符出现的次数

 */

publicclass StringExer4

{

  @SuppressWarnings("resource")

  publicstaticvoid main(String[] args) {

    // 获取字符串

    Scanners = newScanner(System.in);

    Stringstr = s.next();

    // 标记思想

    // 给字符串的每一位字符进行标记

    // 规定如果为false表示这一位没有统计过

    // 如果为true说明这一位已经被统计过不需要被再次统计

    boolean[] bs = newboolean[str.length()];

    // 遍历字符串,依次获取每一位字符

    // 从头到尾的获取过程中有的位置已经统计过

    for (inti = 0; i

      // 判断这一位是否已经被统计过

      if (bs[i])

       continue;

      // 获取这一位字符

      charc = str.charAt(i);

      // 记录这个字符出现的次数

      intcount = 0;

      // 从当前位置开始继续向后寻找相同的字符

      for (intj = i; j

       {

         count++;

         bs[j] = true;

       }

      }

      System.out.println(c + ":" + count);

    }

  }

}

[if !supportLists]4.      [endif]输入一个字符串,将其中的数字提取出来并进行升序排序

package cn.tedu.string;

import java.util.Arrays;

import java.util.Scanner;

public class StringExer3 {

  @SuppressWarnings("resource")

  publicstatic void main(String[] args) {

    //获取字符串

    Scanners = new Scanner(System.in);

    Stringstr = s.next();

    //存储提取后的结果

    char[]ns = new char[str.length()];

    //记录提取的数字的个数

    intcount = 0;

    //遍历字符串,判断其中的字符是否是数字

    for(int i = 0; i < str.length(); i++) {

      charc = str.charAt(i);

      if(c >= '0' && c <= '9')

       ns[count++]= c;

    }

    //数组可能没有被填满,去除没有用到的位置

    ns= Arrays.copyOf(ns, count); 

    //排序

    Arrays.sort(ns);

    System.out.println(newString(ns));

  }

}

[if !supportLists]5.     [endif]输入一个字符串,将其中的数字提取出来并求和

package cn.tedu.string;

import java.util.Scanner;

/**

 *输入一个字符串,将其中的数字提取出来并求和

 */

public class StringExer2 {

  @SuppressWarnings("resource")

  publicstatic void main(String[] args) {

    //获取到字符串

    Scanners = new Scanner(System.in);

    Stringstr = s.next();

    //记录和

    intsum = 0;

    //将字符串转化为字符数组

    char[]cs = str.toCharArray(); 

    //遍历字符数组,提取其中的数字,增强for循环for(数组类型-变量名: 数组名)

    for(char c : cs) {

      if(c>= '0' && c <= '9')

       sum+= (c - '0');

    }

    System.out.println(sum);

  }

}

[if !supportLists]6.      [endif]输入一个字符串,统计字符串中字母、数字和其他符号的个数

package cn.tedu.string;

import java.util.Scanner;

/**

 *输入一个字符串,统计字符串中字母、数字和其他符号的个数

 */

public class StringExer1 {

  @SuppressWarnings("resource")

  publicstatic void main(String[] args) {

    //输入字符串

    Scanners = new Scanner(System.in);

    //next在获取数据的时候是以空白字符(空格、制表符、回车)作为结束

    //String str = s.next();

    //nextLine在获取数据的时候是以回车作为结束

    Stringstr = s.nextLine();

    //记录字母、数字以及其他符号的个数

    intletter = 0;

    intnumber = 0;

    intsymbol = 0;

    //遍历字符串,然后依次判断每一个字符的类型

    for(int i = 0; i < str.length(); i++) {

      charc = str.charAt(i);

      if(c >= 65 && c <= 90 || c >= 97 && c <= 122)

       letter++;

      elseif (c >= 48 && c <= 57)

       number++;

      else

       symbol++;

    }

    System.out.println("字母:" + letter);

    System.out.println("数字:" + number);

    System.out.println("符号:" + symbol);

  }

}

7.判断字符串:

    //由3个字母组成

    //第一个字母是a/b/c

    //第二个字母是d/e/f/g

    //第三个字母是x/y/z

public class PatternDemo2 {

  publicstatic void main(String[] args) {

    Stringstr = "a";

    //判断字符串:

    //由3个字母组成

    //第一个字母是a/b/c

    //第二个字母是d/e/f/g

    //第三个字母是x/y/z

    //System.out.println(str.matches("[abc][defg][xyz]"));

    //匹配由一个字母组成的字符串

    //System.out.println(str.matches("[a-zA-Z]"));

    //匹配由一个数字组成的字符串

    //System.out.println(str.matches("[0-9]"));

    //System.out.println(str.matches("\\d"));

    //匹配由一个字符组成的字符串,但不是a/b/c

    //[^...]表示除了这些字符

    System.out.println(str.matches("[^abc]"));

  }

}

7 密码必须有小写字母,大写字母、数字其中的两个组成(正则表达式)

package cn.tedu.regex;

public class PatternExer2 {

  publicstatic void main(String[] args) {

    Stringpwd = "";

    System.out.println(check(pwd));

  }

  privatestatic boolean check(String pwd) {

    if(!pwd.matches("[a-zA-z0-9]{8,20}"))

      returnfalse;

    //记录出现的字符的种类

    intcount = 0;

    //判断是否含有小写字母

    if(pwd.matches(".*[a-z].*"))

      count++;

    //判断是否含有大写字母

    if(pwd.matches(".*[A-Z].*"))

      count++;

    //判断是否含有数字

    if(pwd.matches(".*\\d.*"))

      count++;

    returncount >= 2;

  }

}

8、package cn.tedu.baozhuang;

public class IntegerDemo1 {

  @SuppressWarnings("unused")

  publicstatic void main(String[] args) {

    //int i = 7;

    //利用基本类型的数据构建了对应的引用类型的对象 --- 封箱

    //Integer in = new Integer(i);

    //自动封箱/拆箱是JDK1.5的特性之一

    //将基本类型的数据直接赋值给了对应的引用类型的对象 --- 自动封箱

    //自动封箱在底层会默认调用Integer类身上的静态方法valueOf

    //Integer in = Integer.valueOf(i);

    //Integer in = i;

    //double d = 3.5;

    //Double dou = Double.valueOf(d);

    //Double dou = d;

    //char c = 'a';

    //Character ch = c;

    Integerin = new Integer(5);

    //将引用类型的对象直接赋值给了对应的基本类型的变量 --- 自动拆箱

    //自动拆箱在底层会默认调用对象身上的***Value()

    //int i = in.intValue();

    inti = in;

    Doubledou = new Double(2.8);

    //Double d = dou.doubleValue();

    doubled = dou;

    Booleanbo = new Boolean(false);

    //boolean b = bo.booleanValue();

    booleanb = bo;

  }

}

9.package cn.tedu.regex;

publicclassPatternDemo1 {

  publicstaticvoid main(String[] args) {

    // Stringstr= "va87gg[bq;903h/0gvd'sga9gsd";

    // System.out.println(str.replace('0',

'-'));

    // 将所有的数字替换为-

    //

System.out.println(str.replaceAll("\\d", "-"));

    // 将所有非数字全部去掉

    //

System.out.println(str.replaceAll("\\D", ""));

    // Stringstr= "Cat Dog Pig Mouse Snake";

    // 交换Dog和Snake的顺序

    // 在replaceAll中可以$n的形式引用前一个正则中对应编号的捕获组

    //

System.out.println(str.replaceAll("(Cat )(Dog)( Pig Mouse )(Snake)",

    //

"$1$4$3$2"));

    Stringstr = "我我我我我我我我爱爱爱爱学学学习习习习习习习习习习习";

    // 我爱学习

    System.out.println(str.replaceAll("(.)\\1+", "$1"));

  }

}

10/

packagecn.tedu.regex;

importjava.util.Scanner;

publicclassPatternExer3 {

  @SuppressWarnings("resource")

  publicstaticvoid main(String[] args) {

    Scanners = newScanner(System.in);

    Stringstr = s.next();

    // 记录字符串的原长度 --- 碎片的总长度

    doublelen = str.length();

    // 将字符串中所有的叠字替换为单字

    str = str.replaceAll("(.)\\1+", "$1");

    // 替换之后的长度就是碎片的个数

    // 计算碎片的平均长度

    System.out.println(len / str.length());

  }

11

package cn.tedu.time;

importjava.text.SimpleDateFormat;

importjava.util.Calendar;

import java.util.Date;

public class DateDemo{

  public static void main(String[] args) throwsException {

    //获取当前的系统时间

    // Date date = new Date();

    //这个方法在1900-01的基础上来进行累加

    //@SuppressWarnings("deprecation")

    //这个方法已过时

    //已过时指当前方法可以使用但是不推荐使用,在后续版本中可能会随时抛弃

    // Date date = new Date(2000 - 1900, 2 - 1,9);

    // 2000-12-15

    // 2000.12.15

    // 2000/12/15

    // 12/15/2000

    // 90.12.15

    //将字符串转化为日期

    SimpleDateFormat sdf = newSimpleDateFormat("yyyy.MM.dd HH:mm:ss");//定义日期格式

    Date date = sdf.parse("2000.12.1518:58:45");//parse解析一次,可以多次使用

    String str1 = sdf.format(date);//format格式

    System.out.println(str1);

    //将日期转化为字符串

    // XX年XX月XX日

    // XX时XX分XX秒

    SimpleDateFormat sdf2=newSimpleDateFormat("yyyy年dd月dd日\tHH时mm分ss秒");

    //可有可无,因为上面已经解析过一个日期了

    Date date2=sdf2.parse("2000年11月15日 18时58分45秒");

        String Str2=sdf2.format(date);

        System.out.println(Str2);

    Calendar c = Calendar.getInstance();

    System.out.println(c);

  }

}

11/

packagecn.tedu.exception;

publicclassExceptionDemo7 {

  publicstaticvoid main(String[] args) {

    System.out.println(m());

  }

  publicstatic Person m() {

    Personp = new Person();

    try {

      p.setName("如花");

      p.setAge(80);

      // p是对象,所以return的是p的地址

      returnp;

    }finally {

      p.setName("周星星");

      p.setAge(18);

    }

  }

}

class Person {

  private String name;

  privateintage;

  public String getName() {

    returnname;

  }

  publicvoid setName(String name) {

    this.name = name;

  }

  publicint getAge() {

    returnage;

  }

  publicvoid setAge(intage) {

    this.age = age;

  }

  @Override

  public String toString() {

    return"Person [name=" + name + ",

age=" + age + "]";

  }

}

12/

packagecn.tedu.exception;

publicclassExceptionDemo4 {

  publicstaticvoid main(String[] args) {

    try {

      //

System.out.println(1 / 0);

      System.out.println(10

/ 2);

    }catch (Exception e) {

      e.printStackTrace();

    }finally {

      // 无论出现了异常与否,finally都会执行一次。

      System.out.println("finally

running~~~");

    }

    System.out.println(m());

  }

  @SuppressWarnings("finally")

  publicstaticint m() {

    // 在try-catch出现的情况下,

    // JVM在编译的时候认为try不一定能够执行成功

    // 就意味着try中不一定能够正常返回结果

    try {

      return 1;

    }catch (Exception e) {

      e.printStackTrace();

      // return

3;

    }finally {

      return 9;

    }

    // return

4;

  }

}

13/

packagecn.tedu.collection;

importjava.util.Arrays;

publicclass ListExer {

}

class ArrList {

  private String[] data;

  // 记录元素的个数

  privateintsize = 0;

  public ArrList() {

    data = new String[10];

  }

  public ArrList(intinitialCapacity) {

    if (initialCapacity< 0)

      thrownew IllegalArgumentException();

    data = new String[initialCapacity];

  }

  // 添加元素

  publicvoid add(String str) {

    // 判断是否需要扩容

    if (size>= data.length)

      this.grow();

    data[size++] = str;

  }

  // 扩容

  privatevoid grow() {

    if (data.length<= 1)

      data= Arrays.copyOf(data, data.length + 1);

    else

      data= Arrays.copyOf(data, data.length + (data.length>>

1));

  }

  // 插入元素

  publicvoid add(intindex, String str) {

    // 判断下标越界

    if (index>size)

      thrownew IndexOutOfBoundsException("Index:" + index + ",

Size:" + size);

    // 判断扩容

    if (size>= data.length)

      this.grow();

    // 挪动元素空出对应的位置

    // for (inti = size - 1; i >= index; i--) {

    // data[i

+ 1] = data[i];

    // }

    // // 插入元素

    //data[index] =str;

    System.arraycopy(data, index, data, index + 1, size - index);

    size++;

  }

  publicvoid remove(intindex) {

    // 判断下标越界

    if (index>= size)

      thrownew IndexOutOfBoundsException("Index:" + index + ",

Size:" + size);

    // for(inti = index; i < size - 1; i++){

    // data[i]

= data[i + 1];

    // }

    System.arraycopy(data, index + 1, data, index, size - (index + 1));

    size--;

  }

}

13

packagecn.tedu.collection;

importjava.util.ArrayList;

importjava.util.Collection;

public classCollectionDemo {

  public static void main(String[] args) {

    //集合中存储的元素类型是String

    Collection c = newArrayList();

    //添加元素

    c.add("gwe");

    c.add("hred");

    c.add("hrd");

    c.add("ater");

    //将集合转化为数组

    // String[] os = (String[]) c.toArray();

    // Object[] os = c.toArray();

    // for (Object o : os) {

    // System.out.println(((String)o).length());

    // }

    String[] strs = c.toArray(new String[0]);

    for (String str : strs) {

      System.out.println(str.length());

    }

    //获取集合中的元素个数

    // System.out.println(c.size());

    //清空集合

    // c.clear();

    //判断集合是否为空

    // System.out.println(c.isEmpty());

    //判断元素是否存在

    //System.out.println(c.contains("hrd"));

    //System.out.println(c.contains("aft"));

    //从集合中移除指定的元素

    // c.remove("gwe");

    //如果元素不存在,会直接跳过

    // c.remove("age");

    System.out.println(c);

  }

}

相关文章

网友评论

      本文标题:API

      本文链接:https://www.haomeiwen.com/subject/urzqiftx.html