`
atomcow
  • 浏览: 8027 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

数组、常见类:字符串 第四讲091121A

阅读更多
Arr.java
//从数组a[]里,寻找who出现的次数。
class Arr{
	public static void main(String args[]){
		int []a={0,6,9,18,3,9,43,7,9,10};
		int who=9;
		boolean isFound=false;
		int num=0;
		
		for(int i=0;i<a.length;i++){
			if(who==a[i]){
				System.out.println("位于:"+(i+1));		
				isFound=true;
				num++;
			}
		}
		
		if(!isFound){
			System.out.println("没有");		
		}else{
			System.out.println("FIND THE \"WHO\": "+num+" TIMES");	
		}
	}
}

输出:
位于:3
位于:6
位于:9
FIND THE "WHO": 3 TIMES

----------------------------------------------------------------------
1)mystring.indexOf(”s”)在mystring中s的位置,返回int。若返回-1表示没有找到。mystring.lastIndexOf (”s”),这个表示从mystring的尾开始比较。如果mystring.indexOf(”s”)==mystring.lastIndexOf (”s”),则s在mystring中只出现了一次,唯一。
2)mystring.startsWith(”s”)、mystring.endsWith(”s”)在mystring中,是否以s开头(结尾),返回一个布尔值。
CheakEmail.java
//对输入的邮箱正确性,进行简单检测
import java.util.*;
public class CheakEmail {
	public static void main(String args[]){
		System.out.println("INPUT");
		Scanner s = new Scanner(System.in);		
		String data = s.next();
		CheakEmail.rule(data);
	}
	public static boolean rule(String d){
		if(d.indexOf("@")<0||d.indexOf(".")<0){	//(1)
			System.out.println("false beauce of rule1");
			return false;
		}
		if(d.startsWith("@")||d.endsWith(".")){	//(2)
			System.out.println("false beauce of rule2");
			return false;
		}
		if(d.lastIndexOf("@")!=d.indexOf("@")){	//(1)
			System.out.println("false beauce of rule3");
			return false;
		}
		if(d.indexOf("@")-d.indexOf(".")>1){		//(1)
			System.out.println("false beauce of rule4");
			return false;
		}
		System.out.println("true");
		return true;
	}
}

----------------------------------------------------------------------

1) mystring.split(”,”)用”,”把mystring分割为数组。
[]arr= mystring.split(”,”)把分割的数组在[]arr中存入。
2)字符串特殊,在内存中保存在字符串池中,不可变性,进行增删改后需要重新赋值。
Fliter.java
//脏话过滤器,[]z为脏话词库,test为需要测试的话语。
public class Fliter {
	public static void main(String args[]){
		String []z="a,hot".split(",");//(1)
		String test="a j hot zss a zi hot ssws a";
		for(int i=0;i<z.length;i++){
			String q="";
			for(int j=0;j<z[i].length();j++){
				q=q+"*";
			}
			test=test.replaceAll(z[i], q); //(2)
		}
	System.out.println(test.toString());
	}
}


输出:* j *** zss * zi *** ssws *
----------------------------------------------------------------------
1)Math.random()随机出0~1之间的小数。
GuessNum.java
//电脑随机100以内的整数ans,用户有7次机会去猜数字

import java.util.Scanner;

public class GuessNum {
	public static void main(String[] args) {
		int ans=(int)(Math.random()*100)+1; //(1)
		//System.out.println(ans);
	
		boolean ok = false;
		
		for(int i=0;i<7;i++){
			System.out.println("");
			System.out.println("输入1-100的数字");
			Scanner s = new Scanner(System.in);		
			int data = s.nextInt();
			
			if(data<ans){
				System.out.println("你的答案太小了");
			}else if(data>ans){	
				System.out.println("你的答案太大了");				
			}else{
				System.out.println("正确");
				ok=true;
				break;
			}
		}
		if(!ok){
			System.out.println("");
			System.out.println("笨");
		}
	}
}

----------------------------------------------------------------------
1) System.arraycopy(a, 0, b, 0, c)把数组[]a复制到数组[]b,从a的第0位开始,复制到b的第0位,共复制c个数据。
2) 数组的length是属性。而字符串的length()是方法,后者使用时需要加括号。
Ins.java
//把num插入到数组[]a的第p个位置(从零开始)。
import java.util.Arrays;
public class Ins {
	public static void main(String args[]){
		int p=1;
		int num=4;
		int []a={1,3,5,7};
		int []b=new int[(a.length+1)]; //(2)
		System.arraycopy(a, 0, b, 0, a.length); //(1)
		for(int i=(b.length-1);i>p;i--){
			b[i]=b[i-1];
		}
		b[p]=num;
		System.out.println(Arrays.toString(b));
	}
}

输出:[1, 4, 3, 5, 7]
----------------------------------------------------------------------
1)c=string.charAt(i)记住这个方法。
TestCharAt.java
//测试,练手,对字符串分割,里面元素单独打印,变化花样打印出来,闲的蛋疼。
public class TestCharAt {
	public static void main(String args[]){
		char c;
		String s="abcde";
		for(int i=0;i<s.length();i++){
			c=s.charAt(i); //(1)
			System.out.println(c);
		}
		System.out.println("---------");
		for(int i=0;i<s.length();i++){
			c="abcde".charAt(i);
			for(int j=0;j<i;j++){
				System.out.print("  ");
			}	
			System.out.println(c);
		}		
	}
 }

输出:
a
b
c
d
e
---------
a
  b
    c
      d
        e
----------------------------------------------------------------------
1) Person类里,重写了compareTo()方法,在排序的时候用到。
2) Person类里,重写了toString()方法,在打印时候用到。
3) Person类里,重写了equals()方法,比较俩类相同与否时候到。
4)Arrays.sort(m)对数组m进行排序。
5)如果用到比较,需要实现Comparable接口。
6)与null比较 只能==,不能用.equals,否则空指针异常。


//比较两个自定义的Person类。进行排序输出。

TestCompare.java
import java.util.Arrays;

public class TestCompare {
	public static void main(String args[]){
	Person[] m=new Person[3];
	
	m[0]=new Person(23,"alex");
	m[1]=new Person(34,"jim");
	m[2]=new Person(18,"jim");
    
System.out.println(m[1].equals(m[2])); //(3)
	System.out.println(m[1].compareTo(m[0])); //(1)
	Arrays.sort(m); //(1)、(4)
	System.out.println(Arrays.toString(m)); //(2)
	}
}

Person.java
public class Person implements Comparable{//(4)
	private int age;
	private String name;
	
	Person(int a,String b){
		this.age=a;
		this.name=b;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
public boolean equals (Object obj){ //(3)
		if (obj==null) return false; //(6)
		if (!(obj instanceof Person)) return false;
		Return this.name.equalsIgnoreCase(((Person)obj).name);		
	}	
	public String toString(){//(2)
		return "<-"+this.age+"|"+this.name+"->";
	}
	public int compareTo(Object obj){ //(1)
		Person p=(Person)obj;
		return this.age-p.getAge();
	}
}

TestCompare的输出结果:
true
11
[<-18|jim->, <-23|alex->, <-34|jim->]

----------------------------------------------------------------------
StringBufferDemo.java
提高字符串累加效率。
public class StringBufferDemo {

	public static void main(String[] args) {
		StringBuffer sob = new StringBuffer();
		sob.append("a");
		sob.append("b");
		sob.append("c").append("d").append("e");
		String s = sob.toString();
		System.out.println(s);
		
		long start = System.currentTimeMillis();
		StringBuffer sb = new StringBuffer(99999);
		for (int i = 0; i < 99999; i++) {
			sb.append("1");
		}
		long end = System.currentTimeMillis();
		System.out.println(end - start);
		
		 start = System.currentTimeMillis();
		String t=""; 		
		for (int i = 0; i < 99999; i++) {
			t=t+"1";
		}
		end = System.currentTimeMillis();
		System.out.println(end - start);
	}
}

输出:
abcde
47
63078
----------------------------------------------------------------------
StringDemo.java
简单实现加密解密
public class StringDemo {

	public static void main(String[] args) {
		
		String s = "I love you!";
		String s2 = 加密(s);
		String s3 = 解密(s2);
		System.out.println(s2);
		System.out.println(s3);
		
	}

	public static String 加密(String t) {
		String s = "";
		for (int i = 0; i < t.length(); i++) {
			s+=(char)(t.charAt(i) + i * 2 + 1);
		}
		return s;
	}
	public static String 解密(String t) {
		String s = "";
		for (int i = 0; i < t.length(); i++) {
			s+=(char)(t.charAt(i) - i * 2 - 1);
		}
		return s;
	}
}

输出:
J#qvp-???6
I love you!
----------------------------------------------------------------------
枚举的例子,通过enum定义变量
枚举例子.java
enum GenderEnum {
	MALE, FEMALE
}
public class 枚举例子 {
	
	public static void main(String[] args) {
		GenderEnum g = GenderEnum.MALE;
		switch (g) {
		case MALE:
		{
			System.out.println("男英雄!");
			break;
		}
		case FEMALE:
		{
			System.out.println("女英雄!");
			break;
		}
		}
	}
}


输出:男英雄!

分享到:
评论

相关推荐

    邓炜PHP基本语法(四)字符串处理函数下

    常见的字符串处理函数的使用 获取字符的长度 改变大小写 加密函数 删除空白符 字符串查找 分解字符串 将数组转为字符串 替换字符串 第一节 在PHP中的字符串 一、字符串中{}的应用 在字符串中用于区分哪是变量,我们...

    csdn 翁恺 C 语言程序设计(完) 视频.txt

    P9110.1.4 字符串:字符串数组,以及程序参数 P9210.2.1 字符串函数:单字符输入输出 P9310.2.2 字符串函数:字符串函数strlen P9410.2.3 字符串函数:字符串函数strcmp P9510.2.4 字符串函数:字符串函数strcpy P...

    边用边学C语言(PDG格式)(中文版).rar

    第四讲 控制结构(二) 第五讲 运算符与表达式 第六讲 函数 第七讲 数组 第八讲 字符与字符串 第九讲 变量类型与编译预处理 第十讲 指针(一) 第十一讲 指针(二) 第十二讲 结构体、共用体和枚举类型 第十三讲 ...

    Java_Programs:Java问题解决方案与解决方案,涉及数组,字符串,字符,集合和一些常见问到的面试问题

    Java程序阵列问题编写一个程序,根据给定的索引顺时针旋转数组。 - 编写程序以交换数组的一半。... 54,546,548,60 =&gt; 6054854654- 开发一个程序以使用数组交换数字的第一位和最后一位。 4556 =&gt; 6554- 编写程序以对给

    C程序设计 第四版 谭浩强 高清扫描版 带完整书签目录 加 学习辅导

    包括C程序设计(第四版)的高清扫描版pdf以及与该书配套的学习辅导一书的pdf。 《C程序设计(第四版)》是由谭浩强教授著、清华大学出版社出版的《C程序设计》是一本公认的学习C语言程序设计的经典教材。根据C语言的...

    正则表达式

    4) String[] split(String regex)根据给定正则表达式拆分该字符串后得到的字符串数组。 3、 创建正则表达式: 正则表达式中使用的常见字符: 1) \t:制表符(‘\u0009’). 2) \n:换行(‘\u000A’)。 3) \r:回车(...

    C语言常见错误小结,希望对大家有帮助

    因此,当grade值为A时,printf函数在执行完第一个语句后接着执行第二、三、四、五个printf函数语句。正确写法应在每个分支后再加上“break;”。例如 case 'A':printf("85~100\n");break; 13.忽视了while和do-while...

    PHP和MySQL WEB开发(第4版)

    第4章 字符串操作与正则表达式 4.1 创建一个示例应用程序:智能表单邮件 4.2 字符串的格式化 4.2.1 字符串的整理:chop()、ltrim()和trim() 4.2.2 格式化字符串以便显示 4.2.3 格式化字符串以便存储:addslashes()和...

    PHP和MySQL Web开发第4版pdf以及源码

    第4章 字符串操作与正则表达式 4.1 创建一个示例应用程序:智能表单邮件 4.2 字符串的格式化 4.2.1 字符串的整理:chop()、ltrim()和trim() 4.2.2 格式化字符串以便显示 4.2.3 格式化字符串以便存储:...

    C程序设计(第四版)学习辅导【谭浩强】

    第4章选择结构程序设计85 4.1选择结构和条件判断85 4.2用if语句实现选择结构87 4.2.1用if语句处理选择结构举例87 4.2.2if语句的一般形式 89 4.3关系运算符和关系表达式91 4.3.1关系运算符及其优先次序91 4.3.2关系...

    Visual C++ 2005入门经典--源代码及课后练习答案

    第4章 数组、字符串和指针 141 4.1 处理多个相同类型的数据值 141 4.1.1 数组 142 4.1.2 声明数组 142 4.1.3 初始化数组 145 4.1.4 字符数组和字符串处理 147 4.1.5 多维数组 150 4.2 间接数据存取 ...

    PHP和MySQL Web开发第4版

    第4章 字符串操作与正则表达式 4.1 创建一个示例应用程序:智能表单邮件 4.2 字符串的格式化 4.2.1 字符串的整理:chop()、ltrim()和trim() 4.2.2 格式化字符串以便显示 4.2.3 格式化字符串以便存储:...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...

    java初学者必看

    第4章 程序流程控制 4.1 顺序结构 4.2 条件语句 4.2.1 if语句 4.2.2 if-else语句 4.2.3 if-else-if语句 4.2.4 if语句的嵌套 4.2.5 布尔表达式 4.2.6 开关语句 4.3 循环语句 4.3.1 while循环结构 4.3.2 do...

    关于C的精粹包含至少200个C语言小程序

    第四部分 图形篇 120 绘制直线 121 绘制圆 122 绘制圆弧 123 绘制椭圆 124 设置背景色和前景色 125 设置线条类型 126 设置填充类型和填充颜色 127 图形文本的输出 128 金刚石图案 129 飘带图案 130 圆环...

    c/c++ 学习总结 初学者必备

    //表示数组中字符串的长度 sizeof(str)=20; //表示数组变量分配的长度 对于指针处理: char *str="0123456789"; strlen(str)=10; //表示字符串的长度 sizeof(str)=4; //表示指针变量的所占内存大小 ...

    C语言常见问题

    第四章 数据文件 19 第五章 编译预处理 24 第六章 字符串操作 30 第七章 指针和内存分配 37 第八章 函数 44 第九章 数组 50 第十章 位(bit)和字节(byte) 56 第十一章 调试 59 第十二章 标准库函数 67 第十三章 时间...

Global site tag (gtag.js) - Google Analytics