Scanner类的使用:

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

import java.util.Arrays;
import java.util.Scanner; /**
* 键盘录入:
* 键盘录入三个整数数值,然后比较三个数中的值
*/ public class ScannerTest {
public static void main(String[] args) {
int[] ints=new int[3];
Scanner sc=new Scanner(System.in);
for(int i=0;i<3;i++)
{
int num=sc.nextInt();
ints[i]=num;
for(int j=0;j<i;j++)
{
if(ints[j]<ints[i])
{
int temp=ints[j];
ints[j]=ints[i];
ints[i]=temp;
}
}
}
for(int i=0;i<3;i++)
System.out.println(ints[i]);
}
}

java 中对类的定义:

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

用new新建数组

int[] ints={};//这样直接用{}初始相当于ints为空 抛出数组越界异常

int[] ints=new int[3];//相当于创建了一长度为3的整形数组

方法

//用于键入三个整形数并求和
public class getSum {
public static void main(String[] args) {
int[] ints=new int[3];
Scanner scanner=new Scanner(System.in);
for(int i=0;i< ints.length;i++)
{
ints[i]=scanner.nextInt();
}
System.out.println(sum(ints));
}
public static int sum(int[] ints)
{
int sum=0;
for(int i=0;i< ints.length;i++)
{
sum+=ints[i];
}
return sum;
}
}

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

方法的递归与重载

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

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

数组

1.数组的创建

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

创建数组的两种方式

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

2.数组的foreach遍历方法

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

字符串常用方法

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

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

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

//str.contains() 判断是否包含某一字符串
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

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

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

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

5、str.length() 求长度

str.length()

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

str.endsWith("world")

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

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

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

char[] chars=str.toCharArray();

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

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

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

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

案例

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

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来实现。

最新文章

  1. FABRIC单机开发者模式启动
  2. Storm Ack框架笔记
  3. Contains Duplicate II
  4. JavaWeb学习记录(十九)——jstl自定义标签库之传统标签
  5. Oracle数据库作业-5 查询
  6. 中文字体在CSS中的表达方式
  7. (iOS)私有API的使用(原创)
  8. 第4章 同步控制 Synchronization ----同步机制的摘要
  9. dfs序和欧拉序
  10. scrapy-shell, settings
  11. tensorflow 查看模型输入输出saved_model_cli show --dir ./xxxx --all
  12. Go语言如何判断一个chan被关闭
  13. 利用svg描边+css3实现边框逐渐消失小动画
  14. TensorFlow环境
  15. 单元测试Mock框架Powermockito 【mockito1.X】
  16. Windows搭建Express环境
  17. ionic后台返回的数据是html模板的时候,解析html文件的方法:
  18. javaweb-Excel导入导出后台代码
  19. 【BZOJ5252】林克卡特树(动态规划,凸优化)
  20. 已有iptables表的查看

热门文章

  1. 虚拟机Parallels Desktop 17 (PD17)支持M1 自己动手制作启动器解锁
  2. 第0次 Beta Scrum Meeting
  3. BUAA 软工 结对项目作业
  4. 2020BUAA软工提问回顾和个人总结作业
  5. VS2019、Qt5.12及QGis3.16开发常见问题汇总
  6. Linux有什么可取之处竟如此受欢迎
  7. NOIP模拟86(多校19)
  8. PE头详细分析
  9. Notepad++ 过滤注释行和空行
  10. matlab与python scipy.signal中 freqs freqz 中w,什么时候是角频率,什么时候是真实的工程中使用的采样频率Hz,如何转化