自己写的一个验证字符串的类
/**
Validate a String such that it meets the following rules:
4 Rules:
Rule1: the length of the string should be between 5 and 15(inclusive);
Rule2: at least a digit should be contained within the string;
Rule3: all the characters should be in lower case;
Rule4: there are no adjacent identical substrings, eg, banana123, violates rule4, because b[an][an]123, while b[an]c[an]123 is a valid one.
*/
public class StringValidation
{
public static void main(String[] args) {
String test1 = "bancanab2324";
String test2 = "bananab2324";
validateStr(test1);
validateStr(test2);
}
public static boolean validateStr(String aStr) {
if(aStr.length() < 5 && aStr.length() > 15) {//rule1
System.out.println(" The length is : " + aStr.length());
return false;
}
//Check if there is any digit in the string
char zero = '0';
char nine = '9';
boolean hasDigit = false;
for(int i = 0; i < aStr.length(); i++ ) {
if(aStr.charAt(i) >= zero && aStr.charAt(i) <= nine) {
hasDigit = true;
break;
}
}
if(!hasDigit) {//no digit in the string.
System.out.println("There are no digits contained in the string!");
return false;
}
//Rule3
if(!aStr.equals(aStr.toLowerCase())){
System.out.println("The characters in the string are not all in lower case!");
return false;
}
String subStr1 = null;
String subStr2 = null;
int span = 0;//the length of the substring.
//Rule4
for(int i = 0; i < aStr.length() - 1; i++){
//we don't have to traverse the rest of the string, because the substring's length won't surpass half of the rest string.
for(int j = i + 1; j <= i + (aStr.length() - i) / 2; j++ ) {
subStr1 = aStr.substring(i, j);
span = j - i;
subStr2 = aStr.substring(j, j + span);
System.out.println(subStr1 + " : " + subStr2);
if(subStr1.equals(subStr2)) {
System.out.println("There exist two identical adjacent substrings!");
return false;
}
}//inner for
}//outer for
return true;
}
}
分享到:
相关推荐
在Java编程中,验证字符串是否符合JSON(JavaScript Object Notation)格式是一项常见的任务,尤其是在进行前后端数据交互时。JSON是一种轻量级的数据交换格式,它允许数据以键值对的形式存储,易于人阅读和编写,...
正则表达式是一种强大的文本模式匹配工具,用于搜索、替换和验证字符串。在C#中,正则表达式通过`System.Text.RegularExpressions`命名空间下的`Regex`类来实现。它可以用来检查字符串是否符合特定的模式,或者从中...
总结起来,C#中实现移除字符串末尾指定字符的方法主要涉及到字符串的`LastIndexOf`和`Substring`方法,通过这两个方法的组合,我们可以高效地完成字符串的处理,满足各种应用场景的需求。同时,单元测试对于确保代码...
一个简单的邮箱正则表达式可能是`^\S+@\S+$`,如果这个正则表达式能成功匹配到你的字符串,那么就可以认为这个字符串是一个有效的邮箱地址。在Python中,可以使用`re.match()`或`re.search()`函数进行比较。 3. RF...
假设我们有一个较长的字符串,但只关心其中的一部分,比如从第3个字符开始的4个字符: ```scl STRING LongString := "ABCDEFGHIJ"; STRING SubString; SubString := SUBSTRING(LongString, 2, 4); // 从索引2开始,...
在编程领域,中心对称是一种特殊的字符串特性,指的是一个字符串从中心点开始向两边读取,字符顺序完全相同。例如,"abcba" 和 "madam" 都是中心对称的,因为它们分别从中心点'c'和'a'向外读取,都能得到相同的字符...
标题 "输入一个字符串,输出所有该字符串的组合情况" 涉及的主要知识点是字符串处理和算法,特别是组合和排列的生成。在这个问题中,我们需要编写程序来生成一个给定字符串的所有可能的子序列或子字符串,这通常涉及...
"统计字符串中子字符串出现的次数,并返回"是一个常见的需求,广泛应用于文本分析、数据挖掘以及日志处理等多个场景。本篇文章将深入探讨如何在C#中实现这一功能,以及涉及到的相关知识点。 首先,我们要明确字符串...
js 实现 验证字符串是否全由数字组成! 值得下载看看!资源免费,大家分享!!
「题目」 输入两个字符串,检测第二个字符串是否是第一个字符串的子字符串。 【该资源仅供学习使用,不得用于其他目的】
1. 分割十六进制字符串:由于每个ASCII字符由两个十六进制数字组成,我们需要将输入的十六进制字符串按每两个字符进行分割,形成一个十六进制数字的数组。 2. 转换为数值:对分割后的数组中的每个十六进制数字,...
去掉重复的字符串及在第一个字符串中删除在第二个字符串中出现的字符两个程序,vs2013已经验证
在编程领域,判断一个字符串或字符串中的一个字符是否为数字类型是常见的操作,尤其是在处理用户输入、数据分析或者格式验证时。下面将详细讲解几种不同语言中实现这一功能的方法,以及如何确保判断的安全性和效率。...
一个常见的方法是使用`abi.encodePacked`函数,该函数可以将多个字节或字符串数据打包成一个连续的字节数组,从而实现拼接的效果。但这种方法需要注意编码的问题,尤其是在涉及到字符串编码(如UTF-8)时,可能会...
`title()`方法适用于每个单词的首字母,而`capitalize()`仅对整个字符串的第一个字符有效。 2. **输出对齐**: - `S.ljust(width,’fillchar')`:左对齐字符串S,宽度为width,不足的部分用fillchar填充,默认为...
- 缺点:不是用来判断字符串是否完全相等,而是返回一个整数值表示字符串的排序关系。 4. **使用 `String.equals` 静态方法:** - Java 9 及更高版本引入了静态方法 `String.equals`。 - 示例:`String.equals(s...
### 一个判断字符串是否是数字字符串的方法 #### 概述 在编程中,经常会遇到需要判断一个字符串是否完全由数字组成的情况。例如,在输入验证、数据处理等场景中,确保输入的是有效的数字字符串是非常重要的。本文...
例如,一个完整的连接字符串可能如下所示: ``` DataSource=ServerName;InitialCatalog=AdventureWorks;User ID=myUsername;Password=myPassword;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False; `...
在标题“验证字符串是否为json格式”中,核心问题是如何确定一个字符串是否符合JSON的标准格式。这通常涉及到以下几个方面: 1. JSON的基本结构:JSON数据由键值对组成,以大括号{}包围,表示一个对象;数组则用方...
在编程领域,字符串操作是一项基础且重要的任务,而“截取字符串”是其中的一个关键功能。这个小demo展示了如何在不同的编程环境中实现字符串截取,同时也涉及到字符串的空格处理。接下来,我们将深入探讨这两个主题...