1. 每个基本类型封装类都有将string转换为基本数据类型的方法

对于非常大的数字请使用Long,代码如下

int age = Integer.parseInt("10"); 
long id = Long.parseLong("190"); // 假如值可能很大.  
2.将char字符转换为string   string Chraracter.toString(char),将char转换为string
3.将stringBuilder转换为string,stringBuilder.tostring();
4.string类常用操作方法 
1)string[]  string.spilt(" ");//根据空格符进行分割,返回值是string数组
2)string  string.replaceAll("a","b");//将a取代成b
3)int string.indexOf(substr);//返回substr在string中第一个index
4)string string.subString(fromIndex.endIndex);//返回被截取的字符串
5)string string.subString(fromIndex);//从第几位开始往后截取
6)char string.charAt(index);返回第几个字符
7)一切的前提,谨记string是final类的,不能更改。保存在方法区的常量池中。
8)用stringBuilder将string相反过来,因为stringBuilder.toReverse()方法,然后再stringBuilder.toReverse().toString()转换为字符串
9)谨记千万不要采用string1+string2+string3这种引用变量的相加,这种会容易造成内存溢出,常量池内存溢出,因为这是引用变量,在程序运行时才会操作。
若想string1这种相加,可以采用字面值相加,如“123”+“abc”+"cbb",因为这种是编译器会优化,优化成一个string。
或者采用,stringBuilder的append(string)方法,将一个stringB附加到主stringBuilder后面。

1.string.操作方法,默认会生成一个新的string保存在常量池中,不会改变原来常量池中的string。

因为常量池,string是final的,一经创建无法改变。

看下面代码:

    String str = "abcde";str.toUpperCase();System.out.println(str);//输出还是abcde,而非ABCDE。因为string是final的,string的改变内容的操作方法会生成一个新的string在常量池中。

2.引用变量指向常量池中的新的str

String str = "abcde";str = str.toUpperCase();System.out.println(str);//常量池中新生成一个string,以前的引用变量指向新地址

3.字符串反转,用string缓存类,stringBuffer或者stringBuilder.

因为string缓存类,预先在堆内存中开辟一个16字符的存储空间,借以不断改变string的值

String str = "abcde";StringBuilder stringBuilder =  new StringBuilder(str);stringBuilder.reverse();str = stringBuilder.toString();System.out.println(str);//输出edcba

stringBuilder是在堆内存开辟一个存储空间,对stringBuilder的修改全是在修改stringBuilder对象内存本身。

4.判断字符串是否对称:

String str = "abcde";StringBuilder stringBuilder =  new StringBuilder(str);String str2 = stringBuilder.reverse().toString();System.out.println(str.equal(str2));

5.输出字符串的子串,比如string str = "@abc  efg . ghk";

string[] strArray = string.split("byChar");

string.split(“byChar”)方法

要求输出abc efg ghk

String str = "ab@cd ghk efg";str = str.replaceAll("@", " ");String[] strArray = str.split(" ");for(String str1:strArray){System.out.println(str1);}

5. 编写一个程序,将下面的一段文本中的各个单词的字母顺序翻转,
“To be or not to be",将变成"oT eb ro ton ot eb."。

public static void main(String[] args) {
String s = "To be or not to be";
String ss[] = s.split(" ");
StringBuffer sb2 = new StringBuffer();
for (int i = 0; i < ss.length; i++) {
StringBuffer sb = new StringBuffer(ss[i]);
sb.reverse();
sb2.append(sb);
if(i == ss.length-1){
sb2.append(".");
}else{
sb2.append(" ");
}
}
System.out.println(sb2);
}

6.String s=”name=zhangsan age=18 classNo=090728”;
将上面的字符串拆分,结果如下:
zhangsan 18 090728

public static void main(String[] args) {String s="name=zhangsan age=18 classNo=090728";String[] ss = s.split(" ");StringBuffer sb =new StringBuffer();for (int i = 0; i < ss.length; i++) {String[] ss2 =ss[i].split("=");sb.append(ss2[1]);sb.append("  ");}System.out.println(sb);}

7.判断一个字符串是否包含另一个字符串?

答:int i = str.indexof("sss");如果不包含,则返回-1.如果包含则返回被包含字符串的起始位置。

if(str.indexof()!=-1){包含};

8.给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置.
如:"abcbcbabcb34bcbd"中,"bcb"子串的出现位置为: 1,7,12.字符串和子串均由用户输入

    String str = "abcdefghkabcdefdef";String subStr = "def";AppMain appMain = new AppMain();appMain.calculateSubStrIndexFromString(str,subStr,0);}public void calculateSubStrIndexFromString(String string,String subStr,int startIndexFirst) {int startIndex = startIndexFirst;int existingIndex = string.indexOf(subStr, startIndex);while(existingIndex != -1){System.out.println("存在的index为:  "+existingIndex);        calculateSubStrIndexFromString(string,subStr,existingIndex+subStr.length());break;}}

9.给定一个长度,随机产生一个该长度的字符串,由大写,小写字母以及数字组成
Java中随机数的生成:
java.util.Random r = new java.util.Random();
int a = r.nextInt(100): a 0-99的随机数

java char 48-57对应0-9

java char 65-90对应A-Z

java chat 97-122对应a-z

10.2.给定一个长度,随机产生一个该长度的字符串,由大写,小写字母以及数字组成
Java中随机数的生成:
java.util.Random r = new java.util.Random();
int a = r.nextInt(100): a 0-99的随机数

public static void Method_Two(){System.out.println("请输入一个长度");Scanner s = new Scanner(System.in);int n = s.nextInt();char[] cs = new char[n];Random random = new Random();for (int i = 0; i < n; i++){int a = random.nextInt(62);if(a>=0 && a<=25){a+=65;}else if (a>25 && a<=51){// 97 - 26 = 71a+=71;}else{// 52-48 = 4a-=4;}cs[i] = (char)a;}System.out.println(cs);}

11.给定一个由数字组成的字符串,如:"1239586838923173478943890234092",统计
出每个数字出现的次数

 public  static void  Method_Three(){Scanner scanner = new Scanner(System.in);String string = scanner.next();int[] c = new int[10];for (int i = 0; i < string.length(); i++){char c1 = string.charAt(i); //48-57int a = c1-48;  // 类型转换c[a]++;}for (int i = 0; i < c.length; i++){System.out.println(i+" 出现的次数: "+c[i]);}System.out.println("=========方法二==========");String s = "12548954231351486214894562";char[] ch = s.toCharArray();Map<Character, Integer> map = new HashMap<Character, Integer>();Set<Character> set = map.keySet();for (int i = 0; i < ch.length; i++){if (set.contains(ch[i])) // 判断map中已经有的char值
            {map.put(ch[i], map.get(ch[i])+1);} else{map.put(ch[i], 1); // 第一次放入map中
            }}Set<Character> set2 = map.keySet();for (Character character : set2){System.out.println(character+"=========="+map.get(character));}}

输出字符串里的大写字母数,小写英文字母数,非英文字母数
public class TestString{
public static void main (String[] args) {
String s="ddejidsEFALDFfnef2357 3ed";
int letters=0;//小写字母数
int capitalLetters=0;//大写字母数
for(int i=0;i
char c=s.charAt(i);
if(Character.isLowerCase(c)){
letters++;
}
else if(Character.isUpperCase(c)){
capitalLetters++;
}

总结:字符串的常见操作无非几种

1.字符串反转 用stringBuilder.reverse();

2.字符串切割String[] strArray = str.spilt("spiltChar");

3.字符串拼接 用stringBuilder.append("str");

本文部分转自http://www.cnblogs.com/IamJiangXiaoKun/p/4639302.html

http://www.2cto.com/kf/201402/276764.html 感谢作者

/** 1,给定一个字符串数组。按照字典顺序进行从小到大的排序。* {"nba","abc","cba","zz","qq","haha"}* * 思路:* 1,对数组排序。可以用选择,冒泡都行。* 2,for嵌套和比较以及换位。* 3,问题:以前排的是整数,比较用的比较运算符,可是现在是字符串对象。*   字符串对象怎么比较呢?爽了,对象中提供了用于字符串对象比较的功能。* * */
public class StringTest_1 {/*** @param args*/public static void main(String[] args) {String[] arr = { "nba", "abc", "cba", "zz", "qq", "haha" };printArray(arr);sortString(arr);printArray(arr);}public static void sortString(String[] arr) {for (int i = 0; i < arr.length - 1; i++) {for (int j = i + 1; j < arr.length; j++) {if(arr[i].compareTo(arr[j])>0)//字符串比较用compareTo方法swap(arr,i,j);}}}private static void swap(String[] arr, int i, int j) {String temp = arr[i];arr[i] = arr[j];arr[j] = temp;}public static void printArray(String[] arr) {System.out.print("[");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1)System.out.print(arr[i] + ", ");elseSystem.out.println(arr[i] + "]");}}}
package cn.itcast.p1.string.test;/** 2,一个子串在整串中出现的次数。* "nbaernbatynbauinbaopnba"* 思路:* 1,要找的子串是否存在,如果存在获取其出现的位置。这个可以使用indexOf完成。* 2,如果找到了,那么就记录出现的位置并在剩余的字符串中继续查找该子串,* 而剩余字符串的起始位是出现位置+子串的长度.* 3,以此类推,通过循环完成查找,如果找不到就是-1,并对 每次找到用计数器记录。 * */public class StringTest_2 {/*** @param args*/public static void main(String[] args) {String str = "nbaernbatnbaynbauinbaopnba";String key = "nba";int count = getKeyStringCount_2(str,key);System.out.println("count="+count);}public static int getKeyStringCount_2(String str, String key) {int count = 0;int index = 0;while((index = str.indexOf(key,index))!=-1){index = index + key.length();count++;}return count;}/*** 获取子串在整串中出现的次数。* @param str* @param key* @return*/public static int getKeyStringCount(String str, String key) {//1,定义计数器。 int count = 0;//2,定义变量记录key出现的位置。int index = 0;while((index = str.indexOf(key))!=-1){str = str.substring(index+key.length());count++;}return count;}}
package cn.itcast.p1.string.test;/** 3,两个字符串中最大相同的子串。* "qwerabcdtyuiop"* "xcabcdvbn"* * 思路:* 1,既然取得是最大子串,先看短的那个字符串是否在长的那个字符串中。* 如果存在,短的那个字符串就是最大子串。* 2,如果不是呢,那么就将短的那个子串进行长度递减的方式去子串,去长串中判断是否存在。* 如果存在就已找到,就不用在找了。* * */
public class StringTest_3 {/*** @param args*/public static void main(String[] args) {String s1 = "qwerabcdtyuiop";String s2 = "xcabcdvbn";String s = getMaxSubstring(s2, s1);System.out.println("s=" + s);}/*** 获取最大子串* * @param s1* @param s2* @return*/public static String getMaxSubstring(String s1, String s2) {String max = null,min = null;max = (s1.length()>s2.length())?s1:s2;min = max.equals(s1)?s2:s1;System.out.println("max="+max);System.out.println("min="+min);for (int i = 0; i < min.length(); i++) {for(int a = 0,b = min.length()-i; b != min.length()+1; a++,b++){String sub = min.substring(a, b);
//              System.out.println(sub);if(max.contains(sub))return sub;}}return null;}
}
package cn.itcast.p1.string.test;/** 4,模拟一个trim功能一致的方法。去除字符串两端的空白 * 思路:* 1,定义两个变量。* 一个变量作为从头开始判断字符串空格的角标。不断++。* 一个变量作为从尾开始判断字符串空格的角标。不断--。* 2,判断到不是空格为止,取头尾之间的字符串即可。*/
public class StringTest_4 {/*** @param args*/public static void main(String[] args) {String s = "    ab   c     ";s = myTrim(s);System.out.println("-" + s + "-");}public static String myTrim(String s) {int start = 0, end = s.length() - 1;while (start <= end && s.charAt(start) == ' ') {start++;}while (start <= end && s.charAt(end) == ' ') {end--;}return s.substring(start, end + 1);}}

编程. 已知字符串:"this is a test of java".

按要求执行以下操作:
(1) 统计该字符串中字母s出现的次数
(2) 取出子字符串"test"
(3) 用多种方式将本字符串复制到一个字符数组Char[] str中.
(4) 将字符串中每个单词的第一个字母变成大写, 输出到控制台。
(5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)
(6) 将本字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的额英文单词,并输出到控制台

4. 转换String为数字
对于非常大的数字请使用Long,代码如下

复制代码 代码如下:

int age = Integer.parseInt("10"); 
long id = Long.parseLong("190"); // 假如值可能很大.  

java string常见操作题相关推荐

  1. Java数组常见操作

    Java数组常见操作 文章目录 Java数组常见操作 7.0 数组的遍历 1.使用foreach循环访问数组中每个元素. 2.使用简单的for循环(多层循环嵌套)来遍历数组. 7.1 数组长度 7.2 ...

  2. 计算机java三级,Java三级复-操作题(计算机程序员).ppt

    Java三级复-操作题(计算机程序员) 操作题1.2.3: 素材 2.任务说明 (1)项目名称:银行取款项目 (2)数据库表说明: 用户信息表的PRAIMARYKEY :用户编号 用户帐户表的PRAI ...

  3. JAVA 二叉树 常见操作合集(前中后序递归非递归遍历 层序遍历 求深度宽度 判断兄弟结点 堂兄弟节点)

    今天复习了二叉树的相关操作,整理归纳如下. 二叉树结点定义 //节点类private static class TreeNode{private int val = 0;private TreeNod ...

  4. 【freemaker】ftl freemaker String常见操作语法

    一.substring NOTE: 这个内置以来2.3.7 FreeMarker的存在 语法exp?substring(from,toExclusive),也可以是exp?substring(from ...

  5. java笔试常见填空题

    1.Hibernate 五个核心类接口___configuration__,sessionFactory_,session_,transaction__,query. 2.hibernate的三种状态 ...

  6. 使用javap工具分析Java String(字符串)操作

    Created by Jerry Wang, last modified on Oct 06, 2016 Put this line into class main method: String a ...

  7. java string字符操作_Java对String类型字符串的各种操作姿势

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //获取字符串的长度 String str2 = "helloword"; System.out.println(str2.lengt ...

  8. Java StringBuilder常见操作总结

    参考链接1 1.构造函数 2.添加 public StringBuilder append(Object obj) (Appends the string representation of the  ...

  9. 2020 年 Java 面试常见 350 题

    最新面试题汇总,来啦! 关注下方公众号,回复"2020面试" 免费获取2020年最新面试题 一起进大厂,每日学干货 关注我,不迷路

最新文章

  1. uni-app如何取消pages页面的默认返回按钮【autoBackButton属性】
  2. 浅析营销型网站SEO优化的四大原则!
  3. request,logging,ConfigParser——接口框架
  4. windows下的守护进程C++
  5. python中random是什么意思_Python代码中的“importrandom”是什么意思?
  6. crontab定时任务中文乱码问题
  7. 从一本书看经济危机中创业者的机会
  8. Tensorflow深度学习应用(进阶篇)
  9. unity 将虚拟相机的视角局部放大,显示在一个平面上
  10. 能打开2D、3D图文件的小工具abviewer
  11. 超全的人脸识别数据集汇总
  12. 劢领AT| 五分钟,零基础玩转Wing中国电信物联网开放平台
  13. Python中三个双引号的作用是什么?
  14. 2007年9-11月
  15. vue中重复设置定时器导致时间加速
  16. 论文翻译--毫米波三维全息摄影的轻量级FMIST启发稀疏重建网络(1)
  17. 以不变应万变:因果启发的稳定学习年度研究进展(上篇)
  18. 英语钻石法则(七)——【听-问答-复述故事】
  19. baiduRanking多站点批量百度排名查询
  20. 刨根问底-ReentrantLock

热门文章

  1. Python的浅复制和深复制区别
  2. 台式计算机计量单位,计算机常见计量单位解析
  3. python 封装对象数据_Python数据库封装实现代码示例解析
  4. 计算机与特殊教育,计算机与信息工程学院特殊教育学院支教活动举行
  5. insertRole attempted to return null from a method with a primitive return type
  6. VB FTP操作类(可上传、下载、创建文件夹等等)
  7. VB6监视/操作剪贴板示例(VB6.0代码)
  8. Windows自启动程序的十大藏身之所
  9. 北大开源了中文分词工具包,准确度远超Jieba,提供三个预训练模型
  10. 手机芯片进入7纳米时代!高通确认年内发布,搭载5G,更强AI