꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱
ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ ა
本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转载还请通知˶⍤⃝˶
个人主页:xiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客
系列专栏:xiaoxie的Java学习系列专栏——CSDN博客●'ᴗ'σσணღ*
我的目标:"团团等我( ◡̀_◡́ ҂)"
( ⸝⸝⸝›ᴥ‹⸝⸝⸝ )欢迎各位→点赞 + 收藏⭐️ + 留言+关注(互三必回)!
今天刷题遇到很有意思的一题
这一题如果使用c++需要调用函数来验证邮箱格式代码如下
#include
#include
using namespace std;
bool validateEmailFormat(const string& email) {
// 邮箱格式的正则表达式
regex pattern(R"([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})");
return regex_match(email, pattern);
}
int main() {
string email;
cout << "请输入邮箱:";
cin >> email;
if (validateEmailFormat(email)) {
cout << "邮箱格式合法" << endl;
} else {
cout << "邮箱格式不合法" << endl;
}
return 0;
}
而Java只需要使用str.matches(emailMatcher);它是Java语法中的
一个字符串方法,用于判断字符串str
是否与给定的正则表达式emailMatcher
匹配。matches
方法返回一个布尔值,如果字符串与正则表达式匹配,则返回true
,否则返回false
。代码如下
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
String emailMatcher="[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}";
System.out.println(str.matches(emailMatcher)?"邮箱格式合法":"邮箱格式不合法");
}
}
这便是Java的简便之处
这题呢为了求最小公倍数我们可以利用最小公倍数是两数相乘除以两数的最大公约数,只要在利用递归计算出两数的最大公约数,那最小公倍数的问题也就迎刃而解代码如下
import java.util.Scanner;
public class Study {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
// 从用户输入读取两个整数
int m = console.nextInt();
int n = console.nextInt();
// 使用getCM方法计算最小公倍数
int result = getCM(m, n);
// 输出结果
System.out.println(result);
}
// 计算最小公倍数的方法
public static int getCM(int m, int n) {
// 使用gcd方法计算最大公约数
return (m * n) / gcd(m, n);
}
// 计算最大公约数的方法
public static int gcd(int m, int n) {
if (n == 0) {
return m;
} else {
return gcd(n, m % n);
}
}
}
其中最关键的就是
return gcd(n, m % n);
计算两个数的最大公约数的递归调用。在这里,m
是被除数,n
是除数。m % n
表示 m
除以 n
的余数。递归调用 gcd(n, m % n)
将 n
作为新的被除数,m % n
作为新的除数,继续计算它们的最大公约数,直到除数为 0,此时被除数就是最大公约数。最后,这个最大公约数将被作为结果返回给调用者。
以上就是今天刷题时遇到的一些个人感觉对自己这个Java小白有帮助的两题,希望对你也有所帮助。不足之处请多多谅解。