Scanner类的使用:

​ 导入Scanner包,new Scanner对象,记得调用System.in参数,调用对应next方法实现键盘录入。

  1. import java.util.Arrays;
  2. import java.util.Scanner;
  3. /**
  4. * 键盘录入:
  5. * 键盘录入三个整数数值,然后比较三个数中的值
  6. */
  7. public class ScannerTest {
  8. public static void main(String[] args) {
  9. int[] ints=new int[3];
  10. Scanner sc=new Scanner(System.in);
  11. for(int i=0;i<3;i++)
  12. {
  13. int num=sc.nextInt();
  14. ints[i]=num;
  15. for(int j=0;j<i;j++)
  16. {
  17. if(ints[j]<ints[i])
  18. {
  19. int temp=ints[j];
  20. ints[j]=ints[i];
  21. ints[i]=temp;
  22. }
  23. }
  24. }
  25. for(int i=0;i<3;i++)
  26. System.out.println(ints[i]);
  27. }
  28. }

java 中对类的定义:

  1. java 本身是面向对象的语言,如果需要使用java去开发一个软件
  2. 那么,软件中每一个模块都是一个个体,每一个个体会拆分为很多单元,
  3. 每个单元本身是一个模糊的概念,针对这一的一个概念,我们一般用类
  4. 去定义,然后在具体执行的时候,需要让模块之间互相协作,正常的去
  5. 模拟现实生活中的场景的时候,就需要创建这个类所对应的实例!

用new新建数组

  1. int[] ints={};//这样直接用{}初始相当于ints为空 抛出数组越界异常
  2. int[] ints=new int[3];//相当于创建了一长度为3的整形数组

方法

  1. //用于键入三个整形数并求和
  2. public class getSum {
  3. public static void main(String[] args) {
  4. int[] ints=new int[3];
  5. Scanner scanner=new Scanner(System.in);
  6. for(int i=0;i< ints.length;i++)
  7. {
  8. ints[i]=scanner.nextInt();
  9. }
  10. System.out.println(sum(ints));
  11. }
  12. public static int sum(int[] ints)
  13. {
  14. int sum=0;
  15. for(int i=0;i< ints.length;i++)
  16. {
  17. sum+=ints[i];
  18. }
  19. return sum;
  20. }
  21. }

​ 方法声明为静态static方法,在主函数中可以直接调用,如果方法并非static方法,要在主函数中调用,必须先定义一个该类对象,通过对象调用方法求和。

方法的递归与重载

​ 递归是方法自己调用自己,递归会严重损耗系统的资源,尽量避免使用递归

​ 方法重载是方法的方法名相同,但是方法的参数列表不同,参数列表不同包括参数的个数不同、个数相同但是参数的类型不同。

数组

1.数组的创建

数组是引用数据类型,可以通过new的方式创建数组

创建数组的两种方式

  1. int[] ints1=new int[10];//创建后不赋值 整型默认值为0
  2. int ints2[]=new int[10];

2.数组的foreach遍历方法

  1. //创建引用类型数组
  2. String[] strings=new String[5];//创建后不赋值 字符型默认值为null
  3. strings[0] = "hello";
  4. strings[1] = "hello";
  5. strings[2] = "world";
  6. strings[3] = "hello";
  7. strings[4] = "java";
  8. //统计hello这个字符串出现的次数
  9. //equals()是字符串的常用方法,判断字符串是否完全相同
  10. int num=0;
  11. //foreach 遍历
  12. //for(存放数据的数据类型 遍历的每一项: 容器对象 )
  13. for(String str : strings)
  14. {
  15. if(str.equals("hello"))
  16. {
  17. num++;
  18. }
  19. }
  20. System.out.println("hello出现的次数:"+num);

字符串常用方法

1、str.equals() 判断字符串是否完全匹配

  1. //str.equals() 判断字符串是否完全匹配
  2. System.out.println(str.equals("hello world"));

2、str.contains() 判断是否包含某一字符串

  1. //str.contains() 判断是否包含某一字符串
  2. System.out.println(str.contains("hello"));

3、str.substring(int beginIndex) //表示从String第一个字符 即下标0开始切割到beginIndex

str.substring(int beginIndex,int endIndex)//从下标beginIndex开始,到endIndex-1结束 比如(6,11)得到world

  1. // 字符串切割
  2. System.out.println(str.substring(1));
  3. System.out.println(str.substring(6,11));

4、str.toLowerCase() 大写转小写

  1. String str3="hELLO world";str3.toLowerCase()

5、str.length() 求长度

  1. str.length()

6、str.endsWith(String suffix) 判断是否以某字符串结尾

  1. str.endsWith("world")

7、str.split() 字符串的分割 返回一个数组

  1. String[] strings=str.split(" ");

8、str.toCharArray() 字符串转出字符数组

  1. char[] chars=str.toCharArray();

9、str.replace() 将字符串中target以replacement字符串替换

  1. String str2=str.replace("world","java");

10、str.indexOf(char ch) 返回第一次ch出现的地址

  1. String str="abbcw";str.indexOf('w');//返回4str.indexOf('cw');//返回3

案例

​ 统计每个字符出现的个数

  1. String str="这里是要统计的字符串";char[] chars=str.toCharArray();int[] num=new int[chars.length];String str2="";//记录单个字符int i=0;for (char c:chars){ String tempstr=""+c; if(!str2.contains(tempstr))//如果不包含 { str2=str2+c; num[i]++; i++; } else { num[str2.indexOf(c)]++; }}char[] chars1=str2.toCharArray();for(int j=0;num[j]!=0;j++) { System.out.println(chars1[j]+"出现了"+num[j]+"次");}

为了统计每个字符出现的次数,可以用一个整型数组存放字符出现的次数,并且这里采用字符串存放单个字符,最后转换字符串为字符数组打印出来,这样可以利用字符串类的一些函数而避免多次for循环。

这种具有key和value类型的结构可以用集合中的hashmap来实现。

java Scanner类与String类的更多相关文章

  1. Java Object类 和 String类 常见问答 6k字+总结

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  2. java学习笔记之String类

    String类总结 String类概述: java.lang.String 类是字符串操作类 String类的常用构造方法: //1.直接赋值 String str= "hellojava& ...

  3. java问题解读,String类为什么是final的

    一.理解final 望文生义,final意为“最终的,最后的”,我理解为“不能被改变的”,它可以修饰类.变量和方法. 所以我是否可以理解为被它所修饰的类.变量和方法都不能被改变呢?答案是”是“,因为有 ...

  4. Java的常用类——Object类、String类

    Java的JDK中提供给我们很多封装好的类就是Java API,可以直接调用. Java 的API(API: Application(应用) Programming(程序) Interface(接口) ...

  5. C#中 StringBuilder类 与 String类的区别---(转)

      在找工作的时候,去了些公司,避免不了要面试和笔试.不过一般最起初的是笔试.我印象中有这样有一道题目:StringBuilder类与 String类的区别?那时候我不太清楚这两个类的区别,今天在看代 ...

  6. Hadoop: Text类和String类的比较

    一般认为Text类和String类是等价的,但二者之间其实存在着不小差别: 以<Hadoop权威指南>中的案例为例,给定字符串  String s = "\u0041\u00DF ...

  7. Java中的Scanner类和String类

    1:Scanner的使用(了解)    (1)在JDK5以后出现的用于键盘录入数据的类. (2)构造方法: A:讲解了System.in这个东西.            它其实是标准的输入流,对应于键 ...

  8. Java常用类之String类练习

    1.编程. 已知字符串:"this is a test of java". 按要求执行以下操作: (1) 统计该字符串中字母s出现的次数 (2) 取出子字符串"test& ...

  9. Java (六、String类和StringBuffer)

    Java String 类 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 创建字符串 // ==比较的是字符串在栈中存放的 ...

  10. 07 Object类,Scanner,Arrays类,String类,StringBuffer类,包装类

    Object类的概述:* A:Object类概述    * 类层次结构的根类    * 所有类都直接或者间接的继承自该类* B:构造方法    * public Object()    * 子类的构造 ...

随机推荐

  1. [转载]CSS3实现文本垂直排列

    最近的一个项目中要使文字垂直排列,也就是运用了CSS的writing-mode属性. writing-mode最初时ie中支持的一个属性,后来在CSS3中增添了这一新的属性,所以在ie中和其他浏览器中 ...

  2. 重磅!微软发布 vscode.dev,把 VS Code 带入浏览器!

    早在 2019 年,当.dev顶级域名开放时,我们赶紧注册了vscode.dev.像许多购买.dev域名的人一样,我们不知道我们将用它做啥.反正,也占个坑吧! 将 VS Code 带入浏览器 直到今天 ...

  3. Scrum Meeting 5.26

    Scrum Meeting Beta 1 日期:2021年5月23日&2021年5月24日 会议主要内容概述:汇报工作 一.进度情况 组员 负责 两日内已完成的工作 后两日计划完成的工作 工作 ...

  4. Asp.CAore往Vue前端传application/octet-stream类型文件流

    题外话:当传递文件流时要确定文件流的类型,但也有例外就是application/octet-stream类型,主要是只用来下载的类型,这个类型简单理解意思就是通用类型类似 var .object.ar ...

  5. Go语言核心36讲(Go语言进阶技术八)--学习笔记

    14 | 接口类型的合理运用 前导内容:正确使用接口的基础知识 在 Go 语言的语境中,当我们在谈论"接口"的时候,一定指的是接口类型.因为接口类型与其他数据类型不同,它是没法被实 ...

  6. 震惊,hzoi的分差竟然折磨大,活到爆!

    众所周知,hzoi的分差非常"大",那么究竟有多大呢?最近,一位外国小哥开发出了hzoi的分差竟然折磨大,活到爆!的方法,这究竟是怎么一回事呢?快和小编一起来看看吧- 竟然1分就可 ...

  7. [luogu2973]driving out the piggies 驱逐猪猡【高斯消元+概率DP】

    看到题面的那一刻,我是绝望的ORZ 图论加概率期望加好像不沾边的高斯消元???我人直接傻掉 还没学过概率期望的我果断向题解屈服了(然后还是傻掉了两节课来找线性方程.. Description 奶牛们建 ...

  8. LVDS DP等显示器接口简介

    LVDS 产品传输速率从几百Mbps到2Gbps.它是电流驱动的,他通过在接收端放置一个负载而得到的电压,当电流正向流动,接收端输出为1,反之为0,它的摆幅250mV-450mV. lvds 即低压差 ...

  9. candy leetcode C++

    There are N children standing in a line. Each child is assigned a rating value. You are giving candi ...

  10. 第07课 OpenGL 光照和键盘(1)

    光照和键盘控制: 在这一课里,我们将添加光照和键盘控制,它让程序看起来更美观. 这一课我会教您如何使用三种不同的纹理滤波方式.教您如何使用键盘来移动场景中的对象,还会教您在OpenGL场景中应用简单的 ...