java Scanner类与String类
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来实现。
java Scanner类与String类的更多相关文章
- Java Object类 和 String类 常见问答 6k字+总结
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- java学习笔记之String类
String类总结 String类概述: java.lang.String 类是字符串操作类 String类的常用构造方法: //1.直接赋值 String str= "hellojava& ...
- java问题解读,String类为什么是final的
一.理解final 望文生义,final意为“最终的,最后的”,我理解为“不能被改变的”,它可以修饰类.变量和方法. 所以我是否可以理解为被它所修饰的类.变量和方法都不能被改变呢?答案是”是“,因为有 ...
- Java的常用类——Object类、String类
Java的JDK中提供给我们很多封装好的类就是Java API,可以直接调用. Java 的API(API: Application(应用) Programming(程序) Interface(接口) ...
- C#中 StringBuilder类 与 String类的区别---(转)
在找工作的时候,去了些公司,避免不了要面试和笔试.不过一般最起初的是笔试.我印象中有这样有一道题目:StringBuilder类与 String类的区别?那时候我不太清楚这两个类的区别,今天在看代 ...
- Hadoop: Text类和String类的比较
一般认为Text类和String类是等价的,但二者之间其实存在着不小差别: 以<Hadoop权威指南>中的案例为例,给定字符串 String s = "\u0041\u00DF ...
- Java中的Scanner类和String类
1:Scanner的使用(了解) (1)在JDK5以后出现的用于键盘录入数据的类. (2)构造方法: A:讲解了System.in这个东西. 它其实是标准的输入流,对应于键 ...
- Java常用类之String类练习
1.编程. 已知字符串:"this is a test of java". 按要求执行以下操作: (1) 统计该字符串中字母s出现的次数 (2) 取出子字符串"test& ...
- Java (六、String类和StringBuffer)
Java String 类 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 创建字符串 // ==比较的是字符串在栈中存放的 ...
- 07 Object类,Scanner,Arrays类,String类,StringBuffer类,包装类
Object类的概述:* A:Object类概述 * 类层次结构的根类 * 所有类都直接或者间接的继承自该类* B:构造方法 * public Object() * 子类的构造 ...
随机推荐
- Hive架构及搭建方式
目录 前言 hive的基础知识 基本架构 metastore 内嵌服务和数据库 内嵌服务 服务和数据库单独部署 hcatalog 客户端 客户端的本地模式 beeline beeline的自动模式 j ...
- CSP-J 2021 复赛游记
Day-1 啥也没干 晚上看了看洛谷的讨论,据说freopen在打开的最后要加 fclose(stdin);fclose(stdout); 不加也可.不过据说Linux在return 0之前不会自动关 ...
- Spring session redis ERR unknown command 'CONFIG'
部署线上服务启动报错 redis.clients.jedis.exceptions.JedisDataException: ERR unknown command 'CONFIG' Redis CON ...
- BUAA2020软工团队beta得分总表
BUAA2020软工团队beta得分总表 [TOC] 零.团队博客目录及beta阶段各部分博客地址 团队博客 计划与设计博客 测试报告博客 发布声明博客 事后分析博客 敏 杰 开 发♂ https:/ ...
- Stack2 攻防世界题目分析
---XCTF 4th-QCTF-2018 前言,怎么说呢,这题目还是把我折磨的可以的,我一开始是没有看到后面的直接狙击的,只能说呢. 我的不经意间的粗心,破坏了你许多的温柔 1.气的我直接检查保护: ...
- PriorityQueue(优先队列)
PriorityQueue 翻译过来就是优先队列,本质是一个堆, 默认情况下堆顶每次都保留最小值,每插入一个元素,仍动态维护堆顶为最小值. PriorityQueue 一个基于优先级的无界优先级队列. ...
- 如何使用原生的Ribbon
什么是Ribbon 之前分析了如何使用原生的Feign,今天我们来研究 Netflix 团队开发的另外一个类库--Ribbon. Ribbon 和 Feign 有很多相似的地方,首先,它们本质上都是 ...
- [源码解析] PyTorch 分布式(1)------历史和概述
[源码解析] PyTorch 分布式(1)------历史和概述 目录 [源码解析] PyTorch 分布式(1)------历史和概述 0x00 摘要 0x01 PyTorch分布式的历史 1.1 ...
- [WPF] 使用三种方式实现弧形进度条
1. 需求 前天看到有人问弧形进度条怎么做,我模仿了一下,成果如下图所示: 当时我第一反应是可以用 Microsoft.Toolkit.Uwp.UI.Controls 里的 RadialGauge 实 ...
- 在Ubuntu下的C语言编程
以运行在虚拟机下的Ubuntu为例: mkdir fenchen 来创建一个文件夹 cd fenchen 切换到这个文件夹下面 vi test.c 创建并编辑一个test.c文件 按 i 编辑,之后把 ...