Java——字符串类实验

本文介绍了如何使用Java编写一个名为CaseConverter的类,该类包含convert方法,用于将用户输入的句子中每个单词的首字母转换为大写,其余字母转为小写。实验中使用了Scanner的nextLine()方法获取句子,StringBuffer类创建新字符串,并讨论了字符串处理中的注意事项,如分割单词、判断字母、转换大小写以及使用StringBuffer的append方法。此外,还提到了测试类TestCaseConverter的实现。
摘要由CSDN通过智能技术生成

【任务一】:

实验要求:
能够根据业务的要求设计和定义类;能够根据业务的要求提取出和业务相关的属性和方法;能够使用定义的属性和
方法完成相应的业务要求;能够使用对象和对象之间的关系完成业务要求;能够将实际的问题描述转换成 Java程序。
实验任务:编写一个 Java 程序,将用户输入的句子当中每一个单词的第一个字母大写, 而单词中的其余字母小写。
要求:
1. 创建类 CaseConverter。
2. CaseConverter 具有方法 String convert(String value),用于返回转换大小写后的结果。
3. 写一个测试类来测试该程序,首先要求用户输入一个句子, 然后提取每一个单词,并将单词的首字母转换成大写,
其余字符小写。 最后输出新字符串。
提示:
1. 需要使用 Scanner的 nextLine()方法来获取一个句子。
2. 使用 StringBuffer类来创建替换过大小写的新字符串。
注意:
1. 单词的分割符除了空格之外,还可能有 Tab或者( ,;.等标点符号)。
2. 注意判断首字符是不是字母。
3. 单词中的其他字母可能为大写。
例如:当用户输入”Thisis a samPLe sentencE to demostrATE the TasK 2.”

 

实验步骤:

新建两个类——CaseConverter(实现功能)、TestCaseConverter(测试功能)

实验代码:

< CaseConverter.java>

public class CaseConverter {
	
	public static String[] words = new String[20];
	public static String convert(String value) {
		StringBuffer upAfter = new StringBuffer(value.length());
		char aCharacter;
		//将tab , ; .等标点符号替换成空格
		value = value.replaceAll("[\\pP‘’“”]", " ");
		words = value.split(" ");
		for (int i = 0;i < words.length; i++)
		{
			for(int j = 0;j < words[i].length(); j++) {
				aCharacter = words[i].charAt(j);
				if (j==0) {
					//判断是不是字母
					if(Character.isLetter(aCharacter)) {
						upAfter.append(Character.toUpperCase(aCharacter));
					}
					else {
						upAfter.append(words[i].charAt(j));
					}
				}
				else {
					//如果该字符是字母切是大写字母,则转小写,否则直接连接
					if(Character.isLetter(aCharacter) && Character.isUpperCase(aCharacter)) { 
			                upAfter.append(Character.toLowerCase(aCharacter)); 
					}
					else {
						upAfter.append(words[i].charAt(j));
					}
				}
			}
			upAfter.append(" ");
		}
		return new String(upAfter);
	}
}


< TestCaseConverter.java>

import java.util.Scanner;

public class TestStringEditor {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Scanner scan = new Scanner(System.in);
		System.out.print("Input your string:");
		String inputString = scan.nextLine();
		scan.close();
		System.out.println("Your string after change:" + CaseConverter.convert(inputString));
		
	}

}


实验笔记:

1.      提取一句英语句子(字符串)中的单词,使用了String split()方法。

在java.lang包中有stringObj.split([separator,[limit]]) 方法,将一个字符串分割为子字符串,然后将结果作为字符串数组返回

stringObj  必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。 
separator 可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整

个字符串的单一元素数组。 

limit 可选项。该值用来限制返回数组中的元素个数

举个栗子:

String.split("\\.")用“.”作为分隔

String.split("\\|")用“|”作为分隔

String.split(" ", 2);  用“ ”作为分割,并且返回2个数组

由于在这个实验中,单词的分割符除了空格之外,还可能有 Tab或者( ,;.等标点符号),

所以先把所有的标点符号全部替换成空格,然后再通过split(" ")提取出单词。

在 JDK 6 以下的版本中可以这样:(用空格*正则替换字符串中的全椒、半角标点符号)


                
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值