/**
* 1.字符串解析,现有一字符串,"卡巴斯基#杀毒软件#免费版#俄罗斯#",解析出每个元素。
*/
package com.Oracle.String_1;
public class Text01 {
public static void main(String[] args) {
String s="卡巴斯基#杀毒软件#免费版#俄罗斯#";
String[] str=s.split("#");
for(String n:str) {
System.out.println(n);
}
}
}
/**
* 2."那车水马龙的人世间,那样的来,那样的去,太匆忙"中最后一次出现“那”的位置
*/
package com.Oracle.String_1;
public class Text02 {
public static void main(String[] args) {
String s="那车水马龙的人世间,那样的来,那样的去,太匆忙";
System.out.println(s);
System.out.println("最后一次出现'那'的位置:"+s.lastIndexOf("那"));
}
}
/**
* 3.判断输入的字符串是否是 .java 结束
提示:public boolean endsWith(String suffix) (查帮助,查此方法的说明)
*/
package com.Oracle.String_1;
import java.util.Scanner;
public class Text03 {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner s=new Scanner(System.in);
System.out.println("请输入一串字符");
String str=s.next();
if(str.endsWith(".java")) {
System.out.println("输入的字符串以.java结束");
}else {
System.out.println("输入的字符串不是以.java结束");
}
}
}
/**
* 4.有一身份证号,判断此为男还是女,基于此方法,
* 写一个算法,判断一个身份证号为男还是女。(身份证分15位和18位)
*/
package com.Oracle.String_1;
import java.util.Scanner;
public class Text04 {
public static void main(String[] args) {
System.out.println("请输入您的身份证号:");
@SuppressWarnings("resource")
Scanner s=new Scanner(System.in);
String str=s.next();
System.out.println(str.length());
// 当身份证为18位时,倒数第二位为单数则性别为男,双数则为女
if(str.length()==18) {
if(str.charAt(str.length()-2)%2==0) {
System.out.println("该身份证号码主人的性别为女");
}else {
System.out.println("该身份证号码主人的性别为男");
}
}
// 当身份证为15位时,倒数第一位为单数则性别为男,双数则为女
else if(str.length()==15) {
if(str.charAt(str.length()-1)%2==0) {
System.out.println("该身份证号码主人的性别为女");
}else {
System.out.println("该身份证号码主人的性别为男");
}
}
}
}
/**
* 5.有如下格式的字符串name-age-sex-address,解析出姓名,年龄等信息。
*/
package com.Oracle.String_1;
import java.util.Scanner;
public class Text05 {
public static void main(String[] args) {
System.out.println("请按照name-age-sex-address的格式输入信息:");
@SuppressWarnings("resource")
Scanner s=new Scanner(System.in);
String str=s.next();
String[] information=new String[4];
information=str.split("-");
for(String n:information) {
System.out.println(n);
}
}
}
/**
* 6.求出字符串中有多少种字符,以及每个字符的个数
static void printCharInfo(String str)
例如有字符串 str="apple is a apple.";
结果应该是a:3 p:4 l:2 e:2 :3 i:1 s:1 .:1
*/
package com.Oracle.String_1;
import java.util.Scanner;
public class Text06 {
public static void main(String[] args) {
System.out.println("请输入一段字符:");
Scanner s=new Scanner(System.in);
String str=s.nextLine();
// str=str.replace(" ", "");
// System.out.println(str);
// System.out.println(str.length());
// for(int i=0;i=65 || c<=122&&c>=97;c++) {
n=0;
for(int i=0;i
以下代码中需要用到的Resolve方法:
package com.Oracle.String_1;
public class Resolve {
// 将字符串右侧的空格删除
public static String rtrim(String str) {
// String s=str;
while(str.endsWith(" ")) {
str=str.substring(0, str.length()-1);
}
return str;
}
// 将传入的字符串和其翻转后的字符串连接在一起
public static String concat(String str) {
str=str+Resolve.reverse(str);
return str;
}
// 将字符串进行翻转
public static String reverse(String s) {
StringBuffer sb=new StringBuffer(s);
return sb.reverse().toString();
// char[] c=new char[s.length()];
// for(int i=0;i=0;i--) {
// c[i]=c[i-position];
// }
//// 将move中储存的原数组末尾的元素移到元素开头的位置
// while(k>0) {
// c[--k]=move[k];
// }
//// 将字符数组创建为字符串,赋给str
// str=new String(c);
// return str;
// }
/**
* 求5个字符串中最长的那个,把最长的字符串打印出来
* @param s
* @return
*/
public static String longestString(String[] s) {
String longest=s[0];
for(int i=0;is[i].length()?longest:s[i];
}
return longest;
}
/**
* 若可以从一个源字符串中, 找到一个相符的字符串(忽略大小写), 则返回第一个字符的索引位置,否则返回-1。
* @param str
* @param subStr
* @return
*/
public static int stringAt(String str,String subStr) {
if(str.toLowerCase().contains(subStr.toLowerCase())) {
return str.toLowerCase().indexOf(subStr.toLowerCase());
}
return -1;
}
// 判断是否是回文
public static boolean rotate(String s) {
if(s.equals(Resolve.reverse(s))) {
return true;
}
return false;
}
}
第七题:
/**
* 7.定义一个方法,用来去掉字符串右边的空格
String rtrim(String str)
*/
package com.Oracle.String_1;
import java.util.Scanner;
public class Text07 {
public static void main(String[] args) {
System.out.println("请输入一段字符:");
Scanner s=new Scanner(System.in);
String str=s.nextLine();
String string=Resolve.rtrim(str);
System.out.println(string);
s.close();
}
}
/**
* 8.定义一个方法,将str所指字符串的正序和反序进行连接,例如 "ok"->"okko"
String concat(String str);
*/
package com.Oracle.String_1;
import java.util.Scanner;
public class Text08 {
public static void main(String[] args) {
System.out.println("请输入一段字符:");
@SuppressWarnings("resource")
Scanner s=new Scanner(System.in);
String str=s.nextLine();
System.out.println(Resolve.concat(str));
}
}
/**
* 9.字符串右移n位,例如 "hello world" 右移两位 后ldhello wor
要求写一个方法实现此功能,方法的格式是
String moveToRight(String str,int position)
str:需要移动的字符串
p:右移的位数
*/
package com.Oracle.String_1;
import java.util.Scanner;
public class Text09 {
public static void main(String[] args) {
System.out.println("请输入一段字符:");
@SuppressWarnings("resource")
Scanner s=new Scanner(System.in);
String str=s.nextLine();
System.out.println("请输入您要右移的位置:");
int position=s.nextInt();
str=Resolve.moveToRight(str, position);
System.out.println(str);
}
}
//10.求5个字符串中最长的那个,把最长的字符串打印出来
package com.Oracle.String_1;
public class Text10 {
public static void main(String[] args) {
String[] s=new String[]{"meet","advent","roost","chineseAndEnglish","program"};
System.out.println(Resolve.longestString(s));
}
}
/**
* 11.若可以从一个源字符串中, 找到一个相符的字符串(忽略大小写), 则返回第一个字符的索引位置,否则返回-1。
*/
package com.Oracle.String_1;
public class Text11 {
public static void main(String[] args) {
String s1="myyname";
String s2="Name";
System.out.println(Resolve.stringAt(s1, s2));
}
}
/**
* 12.判断一个字符串是否是回文
*/
package com.Oracle.String_1;
public class Text12 {
public static void main(String[] args) {
String s1="12331";
System.out.println(Resolve.rotate(s1));
String s2="12321";
System.out.println(Resolve.rotate(s2));
}
}
/**
* 13.如下字符串,01#张三#20-02#李四#30-03#王五#40。。。。。。,解析每个人分数多少。样式如下:
01 张三 20 02 李四 30 03 王五 40。并且计算总分。
*/
package com.Oracle.String_1;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Text13 {
public static void main(String[] args) {
Pattern p=Pattern.compile("#[0-9]{1,3}");
String s="01#张三#20-02#李四#30-03#王五#40";
String[] str=s.split("-");
System.out.println(Arrays.toString(str));
String[] score=new String[str.length];
int sum=0;
for(int i=0;i
第二部分:
/**
* 1.已知字符串:"this is a test of java". 按要求执行以下操作:
(1) 统计该字符串中字母s出现的次数
(2) 取出子字符串"test"
(3) 用多种方式将本字符串复制到一个字符数组Char[] str中.
(4) 将字符串中每个单词的第一个字母变成大写, 输出到控制台。
(5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)
(6) 将本字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的额英文单词,并输出到控制台
*/
package com.Oracle.String_2;
import java.util.Arrays;
public class Text1 {
public static void main(String[] args) {
String s="this is a test of java";
// (1) 统计该字符串中字母s出现的次数
System.out.println(s.length()-s.replace("s", "").length());
// (2) 取出子字符串"test"
System.out.println(s.replace("test", ""));
// (3) 用多种方式将本字符串复制到一个字符数组Char[] str中.
// 方法一:
char[] c1=new char[s.length()];
for(int i=0;i
/**
* 2.获取一个字符串在另一个字符串中出现的次数
例如,获取"kk"在"abkkcdkkefkkskk"中出现的次数
*/
package com.Oracle.String_2;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Text2 {
public static void main(String[] args) {
int n=0;
@SuppressWarnings("resource")
Scanner s=new Scanner(System.in);
System.out.println("请输入一串字符");
String str=s.nextLine();
Pattern p=Pattern.compile("[k]{2}");
Matcher m=p.matcher(str);
while(m.find()) {
n++;
}
System.out.println("kk在该字符串中出现的次数为:"+n);
}
}
/**
* 3.模拟一个trim方法,去除字符串两端的空格
思路: 1,判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止,结尾处判断空格也是如此。
2,当开始和结尾都判断到不是空格时,就是要获取的字符串。
*/
package com.Oracle.String_2;
import java.util.Scanner;
public class Text3 {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner s=new Scanner(System.in);
System.out.println("请输入一串字符");
String str=s.nextLine();
str=trim(str);
System.out.println("去掉前后空格后为:"+str);
}
public static String trim(String str) {
while(str.substring(0, 1).equals(" ")) {
str=str.substring(1,str.length());
}
while(str.substring(str.length()-1, str.length()).equals(" ")) {
str=str.substring(0,str.length()-1);
}
return str;
}
}