java学习之day09--关于字符串的处理
来源:互联网 发布:阿尔法脑电波音乐软件 编辑:程序博客网 时间:2024/04/28 23:10
1 String 和StringBuffer
String 类对象中的内容 一旦初始化不能改变
StringBuffer类封装的字符串内容可以改变,用toString方法转换成String类型
String x="a"+4+"c";
String x=new StringBuffer().append("a").append(40.append("c");
字符串常量实际上是一种特殊的匿名String对象。
简答题:-----------------------------
1.String和StringBuffer有什么区别,"=="和equals()有什么区别?
char能不能放下一个中文字符?
--- String是不可变类,而StringBuffer是可变类。
--- ==是对引用的判断,对内存地址的判断。
--- equals()是判断引用的值是否相等。
---可以
程序题:-------------------------------
1.写一个字符串反转的方法,把“abcdefg”转换成“gfedcba”。
package 字符串;
public class Str1 {
public static void main(String []args){
String s1="abcdef";
int length=s1.length();
StringBuffer s2=new StringBuffer();
for(int i=0;i<length;i++){
s2.append(s1.charAt(length-1-i));
}
s2.toString();
System.out.println("反转前:"+s1+"\n");
System.out.println("反转后:"+s2+"\n");
//方法二:利用reverse()方法
/*String s1="abcdef";
StringBuffer s2=new StringBuffer(s1);
s2.reverse().toString();
System.out.println("反转后:"+s2+"\n");
*/
}
}
2.替换字符串,把“abc.abc.abc”替换成“abc/abc/abc”。
package 字符串;
public class Str2 {
public static void main(String[] args) {
StringBuffer s1=new StringBuffer("abc.abc.abc");
int length=s1.length();
StringBuffer s2=new StringBuffer();
for(int i=0;i<length;i++){
if(s1.charAt(i)=='.'){
s2.append('/');
}
else{
s2.append(s1.charAt(i));
}
}
System.out.println("变换后:"+s2.toString());
}
}
3.日期处理,取得从1970到现在的毫秒数,格式为
yyyy-MM-dd-HH:mm:ss再转换成String输出。
package 字符串;
public class Str3 {
public static void main(String[] args) {
java.util.Date date=new java.util.Date();
long now=date.getTime();
java.text.SimpleDateFormat df=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr=df.toString();
System.out.println(dateStr);
}
}
4.写一个函数,例如:给你的?a?b?c?则输出
?abc??acb??bac??bca??cab??cba?
package 字符串;
import java.util.ArrayList;
import java.util.List;
public class Str4 {
public static List<String> list(String base,String buff){
List<String> result=new ArrayList<String>();
if(base.length()<=0){
result.add(buff);
//System.out.println(result.toString()+"");
}
for(int i=0;i<base.length();i++){
List<String> temp= list(new StringBuilder(base).deleteCharAt(i).toString(),
buff+base.charAt(i));
result.addAll(temp);
}
for(int i=0;i<base.length();i++){
// System.out.println(new StringBuilder(base).deleteCharAt(i).toString()+"");
// System.out.println(base.charAt(i)+"");
// System.out.println(buff+"");
}
return result;
}
public static void main(String[] args) {
String s1="abc";
List<String> list=list(s1,"");
System.out.println(list.size());
System.out.println(list);
}
}
5.不使用中间变量?把两个变量的值互换?
package 字符串;
public class Str5 {
public static void main(String[] args) {
int a=5;
int b=6;
a=a*b;
b=a/b;
a=a/b;
System.out.println("a="+a+" b="+b);
}
}
6.冒泡排序
package 字符串;
public class Str6 {
public static void BubbleSort(int a[],int n){
int exchange=0,bound;// exchange:最后一次交换的位置 bound:无序区的最后一个位置
bound=n-1;
while(bound!=0){
for(int i=0;i<bound;i++){
if(a[i]>a[i+1]){
int temp;
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
exchange=i;
}
bound=exchange;
}
}
public static void main(String[] args) {
int a[]={20,1,15,40,35,2};
BubbleSort(a,6);
System.out.println("排序后"+"\n");
for(int i=0;i<a.length;i++){
System.out.println(a[i]+" ");
}
}
}
7.题目:输入一行字符,分别统计出其中英文字母、空格、
数字和其它字符的个数。
package 字符串;
import java.util.Scanner;
public class Str7 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一串字符:"+"\n");
String s1=new String();
s1=input.nextLine();
int countZiMu=0,countNum=0,countBlank=0,countOther=0;
for(int i=0;i<s1.length();i++){
if((s1.charAt(i)>=65&&s1.charAt(i)<=91)||(s1.charAt(i)>=97&&s1.charAt(i)<=113)){
countZiMu++;
}
else if(s1.charAt(i)>=48&&s1.charAt(i)<=58){
countNum++;
}
else if(s1.charAt(i)==' '){
countBlank++;
}
else {
countOther++;
}
}
System.out.println("字符串为:"+s1);
System.out.println("字母个数是:"+countZiMu);
System.out.println("数字个数是:"+countNum);
System.out.println("空格个数是:"+countBlank);
System.out.println("其他符号个数是:"+countOther);
}
}
8、 编写一个截取字符串的函数,输入为一个字符串和字节数,
输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,
输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
package 字符串;
public class Str8 {
public static void JieQuString(String string,int ByteNum){
int length=string.length();
byte Byte[]=string.getBytes();
if(ByteNum>length){
ByteNum=length;
}
if(Byte[ByteNum]<0){
String s1=new String(Byte,0,--ByteNum);
System.out.println("截取后:"+s1);
}
else{
String s1=new String(Byte);
System.out.println("截取后:"+s1);
}
}
public static void main(String[] args) {
String s1="我ABC你";
JieQuString(s1,6);
System.out.println();
}
}
9、给你一组字符如{1,3,4,7,2,1,1,5,2},让你输出里面出现次数最多且数值最大的一个,出现几次??
package 字符串;
public class Str9 {
public static int DiGui(int x[],int a,int b){
int count=0;
for(int m=a;m<b;m++){
if(x[a]==x[m+1]){
count=1;
}
}
return count;
}
public static void main(String[] args) {
int []s={1,3,4,7,2,1,1,5,2};
int Num[]={1,1,1,1,1,1,1,1,1};
int length=s.length;
for(int j=length-1;j>=0;j--)
{
if(DiGui(s,j,length-1)!=1){
for(int i=j-1;i>=0;i--){
if(s[j]==s[i]){
Num[s[j]]++;
}
}
}
}
for(int m=0;m<s.length;m++){
System.out.println(s[m]+"的个数是:"+Num[s[m]]);
}
}
}
- java学习之day09--关于字符串的处理
- java基础学习day09
- Java学习day09
- java学习day09
- Java 关于字符串的处理
- Java学习日记之字符串处理
- 关于JAVA处理字符串
- python学习之路-进程-day09
- 黑马程序员 java学习笔记(day09)
- java笔记--day09--关于多态的两个案例(猫狗和老师学生)
- Java之字符串处理
- 关于字符串的处理
- 关于字符串的处理
- [Java学习日志]关于字符串的二三事
- 关于Java异常处理的学习代码
- 关于java 异常处理的学习
- Java学习:Java字符串处理
- Java中关于字符与字符串的处理
- 反编译技术探究
- C++指针的一些小总结
- Java字符串排列算法
- android 线程池两种实现方式
- linux splice 的解释
- java学习之day09--关于字符串的处理
- OC中的封装继承多态
- 深入Objective-C的动态特性
- 使用ffmpeg提取视频帧
- linux-framebuffer设备——读取触摸屏信息
- Linux 中的零拷贝技术
- PHP输出gzip压缩
- CSU 1515 Sequence(莫队算法)
- [BZOJ4381][POI2015]Odwiedziny (树链刨分/倍增)