1、 串操作:使用字符串存贮一个英文句子“Java is an object oriented programming
language”。显示该句子,并算出每个单词的字母数和平均字母数,并按单词升序排列输出(不用数组,只用串操作)
public class homework21 {
public static void main(String[] args) {
String java = "Java is an object oriented programming language.";
float sum1= java.length(); //字符串长度48
System.out.println(java); //输出字符串
StringBuffer copyToMe = new StringBuffer();//定义缓冲区
int i = 0;
int number=0;
int length=0;
float sum=0;
char c = java.charAt(i);
//返回字符串对象中第i个位置的字符
while(i<sum1)
{
if (c != ' ')
{
if(c=='.')//最后一个单词的判断
{
number ++; //单词数
System.out.println("第"+number+"单词"+"长度为"+length);
System.out.println("字符串单词数目为"+number);
System.out.print("每个单词的平均字母数:");
System.out.println((double)((sum1-number)/number));
i++;
}
else
{
copyToMe.append(c);
//将字符串追加在原 stringBuffer字符串对象的后面
c = java.charAt(++i); //更新
length ++; //字符串的长度更新
}
}
else
{
number ++;//第几个单词
System.out.println("第"+number+"单词"+"长度为"+length);
length=0;
c = java.charAt(++i);
}
}
paixu();
}
public static void paixu()
{
String java1 = "Java is an object oriented programming language.";//定义字符串常量
System.out.println("原字符串为:"+java1); //输出字符串
System.out.println("排序后字符串为:");
StringBuffer copy = new StringBuffer(); //字符串变量用于接收排序后的字符串
String max="a"; //字符初始化
String restr; //接收字符串
String rec; //接收字符串
String maxstr; //接收字符
String test="a"; //哨兵
int v=0; //定义循环中的变量
int j=0;
//for循环求得最大字符串max
for(int k=0;k<java1.length();k++)
{
if(java1.charAt(k)!=' '&& k!=java1.length()-1)
continue;
maxstr=java1.substring(v,k);
v=k+1;
if(maxstr.compareToIgnoreCase(max)>=0)
max=maxstr;
}
for(int i=0;i<java1.length();i++)
{
if(java1.charAt(i)!=' '&& i!=java1.length()-1)//控制条件
continue;
j=i+1;
rec=max;
int n=0;
for(int m=0;m<java1.length();m++)
{
if(java1.charAt(m)!=' '&& m!=java1.length()-1)
continue;
restr=java1.substring(n,m); //取得子串
n=m+1;
if(rec.compareToIgnoreCase(restr)>=0&&restr.compareToIgnoreCase(test)>0)
rec=restr;//比较,赋值
}
test=rec;
copy.append(rec); //更新字符变量
System.out.print(rec+" ");//逐个输出排序所得单词和空格
}
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
运行结果:
D:/jdk/xi>javac homework21.java
D:/jdk/xi>java homework21
Java is an object oriented programming language.
第1单词长度为4
第2单词长度为2
第3单词长度为2
第4单词长度为6
第5单词长度为8
第6单词长度为11
第7单词长度为8
字符串单词数目为7
每个单词的平均字母数:5.857142925262451
原字符串为:Java is an object oriented programming language.
排序后字符串为:
an is Java language object oriented programming
截图:
2、 数组:编写 Java 程序实现:输入一组整数存放在数组中,比较并输出其中的最大值和
最小值;再将数组元素从小到大排序并输出。
import java.io.*;
import java.lang.*;
public class work22
{
static int[] an=new int[10];//全局变量
public static void main(String[] args) throws Exception {
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
for(int i=0;i<an.length;i++)
{
an[i]=Integer.parseInt(reader.readLine());
//依次接收10个数字,并保存在an中
}
min();//调用函数min,得到最小值
max();//调用函数max,得到最大值
paixu();//调用paixu,按从小到大输出数组元素
}//main结束
public static void min()
{ //求数组元素中最小值并输出
int t= an[0];
for(int i=0;i<an.length;i++)
{
if(t>an[i])
t=an[i];//相互比较,找出最小值
}
System.out.println("最小值是:" );
for(int i=0;i<an.length;i++)
{
if(t==an[i])
{
System.out.println(an[i]);
//把与最小值相等的数组元素输出
}
}
}//min结束
public static void max() //求最大值并输出
{
int t1=an[0];
for(int i=0;i<an.length;i++)
{
if(t1<an[i])
{
t1=an[i];//相互比较,找出最大值
}
}
System.out.println("最大值是:");
for(int i=0;i<an.length;i++)
{
if(t1==an[i])
{
System.out.println(an[i]);
//把与最大值相等的数组元素输出
}
}
}//max结束
public static void paixu()
{
int[] an1=new int[10];
for(int i=0; i<an.length;i++)
{//把an数组元素复制到an1数组中
an1[i]=an[i];
}
for(int i=0;i<an1.length;i++)
{ //对an1数组进行排序
for(int j=0;j<an1.length-1-i;j++)
{
if(an1[j]>an1[j+1])
{
int t=an1[j];
an1[j]=an1[j+1];
an1[j+1]=t;
}
}
}
for(int k = 0; k < an1.length; k++)
{
System.out.println("an1:"+an1[k]);
}
}
}
运行结果:
D:/jdk/xi>javac work22.java
D:/jdk/xi>java work22
23
67
44
55
77
88
22
33
11
2
最小值是:
2
最大值是:
88
第1个元素为:2
第2个元素为:11
第3个元素为:22
第4个元素为:23
第5个元素为:33
第6个元素为:44
第7个元素为:55
第8个元素为:67
第9个元素为:77
第10个元素为:88