我是靠谱客的博主 故意小海豚,最近开发中收集的这篇文章主要介绍13.Java的Scanner类与String类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

###13.01——常见对象(Scanner的概述和方法简介)

*A:Scanner的概述

*B:Scanner的构造方法原理

        * Scanner(InputStream source)

        *System类下有一个静态的字段:

                *public static final InputStream in; 标准的输入流,对应着键盘录入

*C:一般方法

         *hasNextXxx()     判断是否还有下一个输入项,其中Xxx可以是Int、Double等。如果需要判断是否包含下一个字符串,则可以省略Xxx

         *nextXxx()     获取下一个输入项,Xxx的含义和上个方法中的Xxx相同,默认情况下,Scanner使用空格,回车等作为分隔符

import java.util.Scanner;
public class M_Scanner{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);//键盘录入
int i = sc.nextInt();//键盘录入整数,存储在i中
System.our.println(i);//程序等待输入
if(sc.hasNextInt()){
int i = sc.nextInt();
System.out.println(i);
}
else
System.out.println("输入的类型错误");
}
}

###10.02——常见对象(Scanner获取数据出现的小问题及解决方案)

*A:两个常用的方法:

        *public int nextInt():获取一个int 类型的值

        *public String nextLine() : 获取一个String类型的值

*B:案例演示

        *a:先演示获取多个int值,多个String值的情况

        *b:再演示先获取int值,然后获取String类型的值

 

*B:案例演示

         *a:先演示获取多个int值,多个String值的情况

         *b:再演示先获取int值,然后获取String值出现问题

         *c:问题解决方案

                   *第一种:先获取一个数值后,再创建一个新的键盘录入对象获取字符串

                   *第二组:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。(后面讲)

package ScannerAndString;
import java.util.Scanner;
public class Scanner2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// System.out.println("请输入第一个整数:");
// int i = sc.nextInt();
// System.out.println("请输入第二个整数:");
// int j = sc.nextInt();
// System.out.println("i = " + i + ", j = " + j);
// System.out.println("请输入第一个字符串:");
// String line1 = sc.nextLine();
// System.out.println("请输入第二个字符串:");
// String line2 = sc.nextLine();
// System.out.println("line1 = " + line1 + ", line2 = " + line2);
//
System.out.println("请输入第一个整数:");
//
int i = sc.nextInt();// 当我们录入10的时候,其实在键盘上录入的是10和rn,nextInt()方法只获取10就结束了
//
// nextLine()是键盘录入字符串的方法,可以接收任意类型,它只要遇到rn就正门一行结束;
//
System.out.println("请输入第一个字符串:");
//
String line2 = sc.nextLine();
//
System.out.println("i = " + i + ", line2 =" + line2);
/*
* 解决方案
*/
int i = sc.nextInt();
Scanner sc2 = new Scanner(System.in);
String line = sc2.nextLine();
System.out.println(i);
System.out.println(line);
}
}

###10.03——常见对象(String类的概述)

*A:String类的概述

        *通过JDK提供的API,查看String类的说明

        *可以看到这样的两句话

                    *a:字符串字面值"abc"也可以看出是一个字符串对象

                     *b:字符串是常量,一旦被复制,就不能被改变。

package ScannerAndString;
public class String1 {
public static void main(String[] args) {
String str = "abc";//"abc"可以看成一個字符串
str = "def";//檔把“def”賦值給str,原來的"abc"變成了垃圾
System.out.println(str);
}
}

###12.04——常见对象(String类的构造方法)

*A:常见构造方法

          *public String()   :空构造

          *public String(byte[] bytes)   :把字节数组转成字符串

          *public String(byte[] bytes , int index , int length ):把字节数组的一部分转成字符串

          *public String(char[] value):把字符数组转成字符串

          *public String(char[] value , int index ,int count) :把字符数组的一部分转成字符串

          *public String(String original):把字符串常量转成字符串

*B:案例演示

         *演示String类的常见构造方法

package ScannerAndString;
public class String2 {
public static void main(String[] args) {
// 空构造
String s1 = new String();
System.out.println(s1);
// 把字节数组转成字符串
byte[] arr = { 99, 98, 97 };
String s2 = new String(arr);// 解码
System.out.println(s2);
byte[] arr1 = { 99, 98, 97, 100, 56, 45, 56 };
String s22 = new String(arr1, 4, 2);// 解码,从第5个开始转换2个
System.out.println(s22);
char[] arr3 = { '我', '爱', '你' };//将字符数组转换为字符串
String s33 = new String(arr3);
System.out.println(s33);
String s44 = new String(arr3, 0, 3);//从第一个开始转换3个
System.out.println(s44);
String s5 = new String("你爱我");
System.out.println(s5);
}
}

###12.05——常见对象(String类常见面试题)

package ScannerAndString;
public class String3 {
public static void main(String[] args) {
// 大家猜猜输出结果,最好动手试一下
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
String s3 = new String("abc");// 这句话在内存中创建了几个对象
System.out.println(s3 == s1);
System.out.println(s3.equals(s1));
String s4 = "a" + "b" + "c";
System.out.println(s4 == s2);
System.out.println(s4.equals(s2));
String s5 = "ab";
String s6 = s5 + "c";
System.out.println(s6 == s2);
System.out.println(s6.equals(s2));
}
}

###12.06——常见对象(String类的判断功能)

A:String类的判断功能

             *boolean equals(Object obj) :比较字符串的内容是否相同,区分大小写

             *boolean equalsIgnoreCase (String str):比较字符串的内容是否相同,忽略大小写

             *boolean contains(String str):判断大字符串中是否包含小字符串

             *boolean startsWith(String str):判断字符串是否以某个指定的字符串开头

             *boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾

             *boolean isEmpty():判断字符串是否为空。

###12.07——常见对象(模拟用户登陆)

A:案例演示

            *需求:模拟登陆,给三次机会,并提示还有几次

            *用户名和密码都是admin

package ScannerAndString;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
System.out.println("请输入用户名:");
String userName = sc.nextLine();// 将键盘录入的用户名存储在userName中
System.out.println("请输入密码");
String password = sc.nextLine();
// 如果是字符串常量和字符串变量比较,通常都是字符串常量调用方法,将变量当作参数传递,防止空指针异常
if ("admin".equals(userName) && "admin".equals(password)) {
System.out.println("欢迎" + userName + "登录");
break;
} else {
System.out.println("用户或密码输入错误");
System.out.println("您还有" + (2 - i) + "次机会");
}
}
}
}

###12.08——常见对象(String类的获取功能)

int length() : 获取字符串的长度

char charAt(int index):获取指定索引位置的字符

int indexOf(int ch):返回指定字符在字符串中第一次出现的索引

int indexOf(String str)返回指定字符串在此字符串中第一次出现处的索引

int indexOf(int ch ,int fromIndex):返回指定字符串在此字符串中指定位置后第一次出现的索引

lastIndexOf

String substring(int start):从指定位置开始截取字符串,默认到末尾

String substring(int start , int end):从指定位置开始到指定位置结束截取字符串。

###12.09——常见对象(字符串的遍历)

遍历字符串

package ScannerAndString;
public class Test2 {
public static void main(String[] args) {
String s = "maomi";
for(int i=0;i<s.length();i++){
char c = s.charAt(i);
System.out.println(c);//通过索引获取字符
}
}
}

###12.10——常见对象(统计不同类型字符串个数)

A:案例演示

            *需求:统计一个字符串中大写字符,小写字符,数字字符出现的次数,其他字符出现的次数。

package ScannerAndString;
public class Test2 {
public static void main(String[] args) {
int big = 0;
int small = 0;
int num = 0;
int other = 0;
String s = "abcdfrsdfjk561465*&*^&^&*";
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= 'A' && c <= 'Z') {
big++;
} else if (c >= 'a' && c <= 'z') {
small++;
} else if (c >= '0' && c <= '9') {
num++;
} else
other++;
}
System.out.println(s + "中大写字母有:" + big + "个,小写字母有:" + small + "个,数字有:"
+ num + "个,其他字符有:" + other + "个");
}
}

###12.11——常见对象(String类的转换功能)

byte[] getBytes():把字符串转换为字节数组

char[] toCharArray():把字符串转换为字符数组

static String valueOf(char[] chs ):把字符数组转换成字符串

static String valueOf(int i):把int 类型的数据转换成字符串/

              注意:String类的valueOf方法可以吧任意类型的数据转成字符串

String toLowerCase():把字符串转成小写。

String toUpperCase():把字符串转成大写

String concat(String str):把字符串拼接

package ScannerAndString;
public class Method {
public static void main(String[] args) {
String s1 = "abc";
byte[] arr = s1.getBytes();//通过GDK码表
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i] + " ");//编码
}
char[] arr1 = s1.toCharArray();
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i] + " ");//编码
}
char[] arr2 = {'a','b','c'};
String s = String.valueOf(arr2);
System.out.println(s);
}
}

###12.12——常见对象

把一个字符串的首字母转换成大写,其余为小写

package ScannerAndString;
public class Test3 {
public static void main(String[] args) {
String s = "woaimaomao";
String s2 = s.substring(0,1).toUpperCase().concat(s.substring(1).toLowerCase());
System.out.println(s2);
}
}

###12.13——常见对象(把数组转成字符串)

*A:案例演示

         *需求:把数组中的数据按照指定格式拼接成一个字符串

package ScannerAndString;
public class Test3 {
public static void main(String[] args) {
int[] arr = { 1, 2, 3 };
String s = "[";// 定义一个字符串用来与数组拼接
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1)
s = s + arr[i] + "]";
else
s = s + arr[i] + ", ";
}
System.out.println(s);
}
}

###12.14——常见对象(String类的其他功能)

1.替换功能

String replace (char old,char new);

String replacr(String old , String new );

2.去除字符串两空格

String trim()

3.按字典序比较两个字符串

int compareTo(String str)

int compareToIgnoreCase(String str)

package ScannerAndString;
public class Method2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "qinmu";
String s2 = s.replace('i', 'o');
System.out.println(s2);// 如果替换不存在,保留原来字符不改变
String s4 = s.replace("qi", "mu");
String s1 = "
qingn
mu ";
String s3 = s.trim();// 去除左右两边空格
System.out.println(s3);
String s5 = "bcd";
System.out.println("abc".compareTo(s5));// 按照码表值比较
String s6 = "Bcd";
System.out.println(s5.compareToIgnoreCase(s6));
}
}

###12.15——常见对象(字符串反转)

package ScannerAndString;
import java.util.Scanner;
public class Method2 {
/**
* @param args
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一个字符");
String line = in.nextLine();
char[] arr = line.toCharArray();//将字符串转换为字符数组
String s = "";
for(int i = arr.length-1;i>=0;i--){
s=s+arr[i];
}
System.out.println(s);
}
}

###12.16——常见对象(在大串中查找小串出现的次数代码实现)

package ScannerAndString;
import java.util.Scanner;
public class Method2 {
/**
* @param args
*/
public static void main(String[] args) {
String max = "woaimaomaomaomaoshiwozuixihuandemao";
// 通过indexOf方法在大串中找小串,根据获取的索引值假设小串的长度,截取大串
String min = "mao";
int count = 0;// 计数器
int index = 0;// 定义索引
while ((index = max.indexOf(min)) != -1) {
count++;//计数器自增
max = max.substring(index+min.length());
}
System.out.println(count);
}
}

 

 

 

 

 

最后

以上就是故意小海豚为你收集整理的13.Java的Scanner类与String类的全部内容,希望文章能够帮你解决13.Java的Scanner类与String类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部