检查字符串是否为android上的web地址或ip
我需要验证TextEdit中输入的字符串是一个网址,如“www.stackoverflow.com”还是一个ip地址,如“64.34.119.12”。我试过这两种方法,但都没有成功。我有一个名为ip的私有类变量 方法1:检查字符串是否为android上的web地址或ip,android,validation,ip,ip-address,Android,Validation,Ip,Ip Address,我需要验证TextEdit中输入的字符串是一个网址,如“www.stackoverflow.com”还是一个ip地址,如“64.34.119.12”。我试过这两种方法,但都没有成功。我有一个名为ip的私有类变量 方法1: public boolean isAdress(){ boolean isaddr = true; try { ip = new NetTask().execute(""+textEdit1.getTex
public boolean isAdress(){
boolean isaddr = true;
try
{
ip = new NetTask().execute(""+textEdit1.getText()).get();
}
catch (Exception ex)
{
isaddr = false;
}
return isaddr;
}
方法2是在将字符串发送到NetTask之前检查字符串的方法
public boolean isAdress(){
String adress = textEdit1.getText().toString();
boolean isaddr = true;
if (adress.length() > 0) {
String[] nums = adress.split(".");
if (nums.length == 4) {
for (String str : nums) {
int i = Integer.parseInt(str);
if ((i < 0) || (i > 255)) {
isaddr = false;
}
}
}
}
return isaddr;
}
但它似乎总是返回false。简短回答:尝试使用regex 编辑: 如果你谷歌你可以找到正确的正则表达式字符串的IP地址和网址 注:
URL的正则表达式可以根据您的需要而有所不同,您是否只需要http://https://或所有有效的URL(如market://)…更简单的方法如何?检测它是否是IP地址,例如
public static boolean isIP(String input) {
if (input.contains(".") && input.length()>1) {
return TextUtils.isDigitsOnly( input.replace(".", "").trim() );
}
else {
return false;
}
}
Patterns.IP_ADDRESS.matcher(url.matches() 验证Kotlin中的IP地址,返回true或false
fun isValidIPAddress(ip:String):Boolean {
val reg0To255 = ("(\\d{1,2}|(0|1)\\" + "d{2}|2[0-4]\\d|25[0-5])").toRegex()
return reg0To255.matches(ip)
}
val inputIP = "127.1.1.775"
println("Input: " + inputIP)
println("Output: " + isValidIPAddress(inputIP))
输入:127.1.1.775
输出:false任何内容都可以是网址。你确定你需要这个吗?看看这个答案:是的,我需要知道它是否是adress,因为如果我把这个字符串传递给我的另一个方法,我的程序就会崩溃。现在你已经把@RohitMalish引入到了这个字符串中。使用regex有多容易?我对安卓相当陌生。当你不需要NetTask的时候,这在桌面上很容易做到。我需要正则表达式来表示没有任何类型的http://etc的字符串。地址必须是这种形式才能被接受“www.google.com,www.abc.com,www.stackoverflow.com,www.something.eu等等”,就像我说的:使用正则表达式,那么谷歌如何制作一个适合你的正则表达式或谷歌正则表达式……好的,我已经尝试过正则表达式,但它似乎只返回false。我编辑了我的帖子并添加了regex方法。如果你的数字在0到255之间,比如。
public static boolean isIP(String input) {
if (input.contains(".") && input.length()>1) {
return TextUtils.isDigitsOnly( input.replace(".", "").trim() );
}
else {
return false;
}
}
fun isValidIPAddress(ip:String):Boolean {
val reg0To255 = ("(\\d{1,2}|(0|1)\\" + "d{2}|2[0-4]\\d|25[0-5])").toRegex()
return reg0To255.matches(ip)
}
val inputIP = "127.1.1.775"
println("Input: " + inputIP)
println("Output: " + isValidIPAddress(inputIP))