一.将字符串转化为字符数组:

  toCharArray返回一个字符数组。

char[] a=J.toCharArray();

二.字符串的长度

字符串的长度和字符数组的长度是不一'样'的.

字符串长度(字符串中的字符个数):

 String J="HELLO";
J.length();

字符串的长度为5,且是一个方法length();


字符数组的长度:

String J="HELLO";
char a=J.toCharArray();
System.out.println(a.length);

字符数组需要获取长度,是访问一个对象length。

三.字符串的比较

我详细阅读了这篇文章,总结了一下:

1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 
他们之间的比较,应用双等号(==),比较的是他们的值。 

2.复合数据类型(类) 
当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址。

所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。

所以比较字符串是否相等时,要使用equlas方法。

String str1="Hello";
String str2="Hello";
str1.equals(str2);// return true

想看详细的文章地址如下:

(没总结的地方,包括重写equals方法,缓冲池中的String)

https://www.cnblogs.com/dongguol/p/5845076.html

四.遍历字符串

charAt(int index);// 返回指定索引处的 char 值。

返回指定索引处的 char 值。索引范围为从 0length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这类似于数组索引。

五.将字符串转为大写或小写

toLowerCase(Locale locale) //使用默认语言环境的规则将此 String 中的所有字符都转换为小写。

toUpperCase() //使用默认语言环境的规则将此 String 中的所有字符都转换为大写。          

可以做一做leetcode上的一道简单题:

https://leetcode-cn.com/problems/to-lower-case/

六.替换字符串的匹配的字串

replace(CharSequence target, CharSequence replacement) //使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。

replaceAll就不介绍了,区别在这篇文章有详细介绍:

https://blog.csdn.net/anmoyyh/article/details/70673812

掌握这个方法就可以快速做一下这道题:

461. 汉明距离

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。

给出两个整数 x 和 y,计算它们之间的汉明距离。

注意:
0 ≤ xy < 231.

示例:

输入: x = 1, y = 4

输出: 2

解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑ 上面的箭头指出了对应二进制位不同的位置。

我的解法:

 class Solution {
public int hammingDistance(int x, int y) {
String str=Integer.toString(x^y,2);
return str.replace("0","").length();
}
}

以下为后期补充:

replaceFirst(String regex, String replacement) // 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。

相比replace,这个方法只替代一个字符,学了这个可以做一下这个题。

389. 找不同

给定两个字符串 s 和 t,它们只包含小写字母。

字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。

请找出在 t 中被添加的字母。

示例:

输入:
s = "abcd"
t = "abcde" 输出:
e 解释:
'e' 是那个被添加的字母。 我的解法:
 class Solution {
public char findTheDifference(String s, String t) {
char[] a=s.toCharArray();
for(char i:a){
t = t.replaceFirst(String.valueOf(i),"");
}
return t.charAt(0);
}
}

简单但是时间和空间用的太多了,但是比赛中追求做题的速度了,有这点就够了。

运行速度更快的可以使用位运算和哈希表

七.字符串是否包含某些字符

contains(CharSequence s) //当且仅当此字符串包含指定的 char 值序列时,返回 true。

551. 学生出勤记录 I

给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:

  1. 'A' : Absent,缺勤
  2. 'L' : Late,迟到
  3. 'P' : Present,到场

如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。

你需要根据这个学生的出勤记录判断他是否会被奖赏。

示例 1:

输入: "PPALLP"
输出: True

示例 2:

输入: "PPALLL"
输出: False 以下为我的解法:
 class Solution {
public boolean checkRecord(String s) {
int a=0;
if(s.contains("LLL")){return false;}
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='A'){
a++;
}
if(a>1){return false;}
}
return true; }
}

当然有时候需要返回字串在字符串里面出现得第一个索引位置:

 int indexOf(int ch) //返回指定字符在此字符串中第一次出现处的索引。
int indexOf(int ch, int fromIndex) //返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
int indexOf(String str) //返回指定子字符串在此字符串中第一次出现处的索引。
int indexOf(String str, int fromIndex) // 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

以下例题使用这个方法十分方便:

28. 实现strStr()

实现 strStr() 函数。

给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。

示例 1:

输入: haystack = "hello", needle = "ll"
输出: 2

示例 2:

输入: haystack = "aaaaa", needle = "bba"
输出: -1

说明:

当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。

对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。

对于这道题原本的意思是使用kMP算法,但是系统封装好的方法,直接调用:

 class Solution {
public int strStr(String haystack, String needle) {
return haystack.indexOf(needle);
}
}
 

java:比赛中常用方法整理——字符串(基础)的更多相关文章

  1. java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法

    1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...

  2. js String对象中常用方法小结(字符串操作)

    1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码. strObj.charCodeAt(index) 说明: index将被处理字符的从零开始计数的编号.有效值为0到字符 ...

  3. Java知识系统回顾整理01基础01第一个程序05Eclipse中运行Java程序

    一.打开Java文件 直接打开在 命令行Hello World 中创建的java 文件 HelloWorld.java 二.运行 点击绿色运行按钮,直接运行 在eclipse中,编译过程自动执行了 三 ...

  4. Java知识系统回顾整理01基础02面向对象01类和对象

    一.面向对象实例--设计英雄这个类 LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女 所有这些英雄,都有一些共同的状态 比如,他们都有名字,hp,护甲,移动速度等等 这样我们就可以设计一 ...

  5. Java知识系统回顾整理01基础04操作符01算术操作符

    一.算数操作符类别 基本的有: + - * / % 自增 自减: ++ -- 二.基本算数操作符 + - * / 基本的加 减 乘 除 public class HelloWorld { public ...

  6. Java知识系统回顾整理01基础03变量03字面值

    一.字面值定义 创建一个Hero对象会用到new关键字,但是给一个基本类型变量赋值却不是用new. 因为基本类型是Java语言里的一种内置的特殊数据类型,并不是某个类的对象.  给基本类型的变量赋值的 ...

  7. 在java代码中显示json字符串(怎么避免json字符串中双引号在java代码中显示)

    String log = "eyJvcmRlckluZm8iOnsiaWQiOjEwNzQwNCwib3JkZXJJZCI6MjczNjQyMSwicHJvZHVjdENvZGUiOjQ1N ...

  8. Java知识系统回顾整理01基础01第一个程序02命令行格式编译和执行Java程序

    一.先看运行效果 在控制台下运行第一个Java程序,可以看到输出了字符串 hello world 二.准备项目目录 通常都会在e: 创建一个project目录 在这个例子里,我们用的是e:/proje ...

  9. Java知识系统回顾整理01基础05控制流程01if

    一.if if(表达式1){ 表达式2: } 如果表达式1的值是true, 就执行表达式2 public class HelloWorld { public static void main(Stri ...

随机推荐

  1. 读《图解HTTP》有感-(HTTP报文内的HTTP消息)

    写在前面 HTTP通信包括从客户端到服务端的的请求以及服务端返回客户端的响应 正文 1.什么是HTTP报文?它由什么构成?包含几个部分? 用于HTTP协议交互的信息就是HTTP报文:它是由多行数据构成 ...

  2. SSM-SpringMVC-30:SpringMVC中InitBinder的骇客级优化

     ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 上篇博客利用initbinder做了局部的日期类型转换,但是兼容性不要,只支持yyyy-MM-dd这种,所以 ...

  3. 项目开发中如何规范自己的CSS

    1.CSS规范 - 分类方法 CSS文件的分类和引用顺序 通常,一个项目我们只引用一个CSS,但是对于较大的项目,我们需要把CSS文件进行分类. 我们按照CSS的性质和用途,将CSS文件分成“公共型样 ...

  4. Eclipse中导入项目后js报错解决方法

    http://blog.csdn.net/chenchunlin526/article/details/54666882 原因是因为开启了js的校验功能 不影响项目 如需去除错误标志按链接文档操作即可 ...

  5. SpringMvc 这篇文章写得不错 多多学习2017.6.29

    http://www.cnblogs.com/bigdataZJ/p/springmvc1.html  博客园链接

  6. EF生成模型出现异常:表“TableDetails“中列“IsPrimaryKey”的值为DBNull解决方法

    Entity Framework连接MySQL时:由于出现以下异常,无法生成模型:"表"TableDetails"中列"IsPrimaryKey"的值 ...

  7. javascript 原型机制

    prototype,__proto__,constructor 在 JavaScript 原型继承结构里面,规范中用 [[Prototype]] 表示对象隐式的原型,在 JavaScript 中用 _ ...

  8. 解决error while loading shared libraries的通用方案

    1. 首先 find / -name libevent-1.4.so.2 找到缺少的链接文件到底在那儿. 2. LD_DEBUG=libs LD_DEBUG=libs /usr/local/bin/f ...

  9. 修改LINUX的时区。

    新装的机器(redhat7)有几台时区不对: 百度了之后找到了以下解决方法输入 tz    依次选择Asia China  east China  Yes 1  然后 export TZ 新开对话发现 ...

  10. Java 读书笔记 (十五) Java 异常处理

    捕获异常 使用try 和catch关键字可以捕获异常.try/catch 代码块放在异常可能发生的地方. try/catch 代码块中的代码称为保护代码 ,使用try/catch的语法如下: try ...