您的位置:首页 > 移动开发 > Objective-C

Object类和String类中常用的方法

2017-09-06 09:15 711 查看
mac下相关的快捷键

cmd+t:快速显示当前类的结构

cmd+f:快速替换

command+左键 查看源码

Command+Option+R
 批量重命名

Command+Option+S
 快速生成代码,Getter&Setter,Constructor等

Command+Option+m
快速封装目标方法

Option+回车
 显示当前选择资源的属性

Object类方法介绍:最基本的类

hashcode():根据地址显示一个哈希编码。地址相同则哈希码相同,否则不同

getClass(): 返回当前运行类的对象

toString():以String格式输出

clone():浅克隆一个类

Scanner类:接受键盘录入的数据,可以接受很多基本数据类型还是字符串类型

    构造方法:public Scanner(InnputStream source)   构造一个新的Scanner,它生成的值是由指定的输入流扫描的

Scanner  sc= new Scanner(System.in);

成员方法:
hasNext❌❌❌()  判断要接受的数据是否与当前数据类型一致,不一致hasNext❌❌❌方法就会返回false

nextLine() 将键盘录入的值当做字符串返回

next()将键盘录入的有效值进行输出:相较于上一个,不显示空格字符

先使用nextInt再使用nextLine出现问题的原因?

先使用nextInt接受int类型的数据,后面的\r\n剩下了,nextLine将这些也接受了,所以看起来就像是程序停止运行了。

解决方法:不管输入的是什么类型,都用nextLine接受,然后进行强转。(字符串无法转换为基本数据类型,此时要使用Integer.parseInt()来实现)

String类:可以看成是字符数组。字符串是常量。字符串常量放在方法区中的常量区。

构造方法:
public String():创建一个空字符序列

public String( byte[]  bytes )使用字符集解码byte数组,创建字符串   new String(bytes)

public String( byte[] bytes ,String charsetName) 指定字符集解码byte数组   new String(bytes,"UTF-8")

public String( byte[] bytes,int offset,int length)要解码的byte,要解码的第一个索引,要解码的byte数目

先调用.length查看String字符的长度,在决定长度。索引,所以是从零开始。           new String(bytes,6,6)

string可以调用getBytes方法,将String 输出为byte数组.也可以指定字符集。

字符的

字符串先调用toCharArray转换为字符数组,再用

public String(char[] value)  :将字符数组转化为字符串  new String(chars)

public String(char[] value,int offset,int count):同上,将字符数组中的一部分转化为字符串(直接输入即可)

面试题一则

String s ="hello";

s+="world";s的结果以及过程中常量池中一共创建了几个字符串?

三个

本身有hello,想在常量池找world,没有,创建一个world,拼接后的helloworld,s指向helloworld。此时一共三个字符串

面试题之二

String s1 =new String("哈哈");和

String  s2="哈哈";的异同

s==s2 false   比较的是地址值,false

s.equals(s2) true 比较的是字符串的内容 true

new出来的在堆中。直接的在方法区常量池中

String类的判断功能

boolean equals(Object object)比较当前字符串的值和参数字符串的值是否相等

boolean equalsIgnoreCase(String str)忽略英文字母大小写进行比较

boolean contains(String str) 判断当前字符串是否包含参数字符串      String   s="abc"   contains("ab")

boolean startWith(String str)判断当前字符串是否以参数字符串开头

boolean endWith(String str) 判断当前字符串是否以参数字符串结尾 

boolean isEmpty()判断当前字符串是否为空  

String类中获取功能

int length()获取字符串长度

char charAt(int index)获取指定索引位置上面对应的字符

int indexOf(int ch)返回指定字符在字符串中第一次出现的索引位置   输入的int为ascii码

int indexOf(String str)返回参数字符串在字符串中第一次出现的索引位置 输入的为字符串

int indexOf(String str,int fromIndex)从指定索引位置开始搜索str在字符串中第一次出现的索引位置

int indexOf(char ch,int fromIndex)从指定索引位置开始搜索ch在字符串中第一次出现的索引位置

String substring(int start)从指定start索引位置开始截取到当前字符串的末尾,返回截取的字符串

String substring(int start,int end)从指定的start索引开始截取到指定end-1位置(包含头不包含尾),返回截取的字符串。

String类中转换功能

public byte[] getBytes()使用平台默认编码将字符串转换成字节数组

public char[] toCharArray()将字符串转换成字符数组

public static String valueof(char[] chs)将字符数组转换成字符串

public static String valueof(int i)将int的值转换为字符串

public String toLowerCase() 将当前字符串中的英文全部转换成小写

public String toUpperCase()将当前字符串中的英文全部转换成大写

public String concat()将当前字符串和参数字符串拼接

只要有返回值,对原数据都没有影响

String类的其他功能

替换功能

String  replace(char old,char new)将当前字符串中的所有old字符串替换成new的参数字符

String replace(String old,String new)将当前字符串中的所有old字符串替换成new的参数字符串

String trim()  去除开头和结尾空格

按字典顺序比较两个字符串

int compareTo(String str)参数字符串等与此字符串,返回值0,字符串小于字符串参数,返回一个小于0的值,字符串大于参数字符串,返回一个大于0的值。

int compareToIgnoreCase(String str)忽略大小写比较

字符串反转

键盘输入与显示屏输出相反

1️⃣将字符串转换为字符数组toCharArray()

2️⃣将字符数组逆序  while(start<end){

互换;     start++; end--;

}

3️⃣将字符数组转换为字符串new String(charArray)

删除字符串中指定的字符(字符不能为空,字符串能为空)

s.replace("zz","").replace("rr","");链式编程

截取一大段话中间的中国二字

for循环中,用charAt获取每一个字符。

判断是不是中,是中,i++,

判断是否超出字符串长度,没有超出charAt(i),此时的i是中下一个字,判断i是否等于国,是的话,输出

这个问题中溢出字符串是考虑的重点所在
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: