Java 如何使用正则表达式检查字符串是否为科学符号?
我想检查用户输入,这是我将得到的字符串,并传递给一个数组!现在我想用正则表达式来看看这个数字是否是科学符号!我也想为八进制做同样的事情!!! 我这里有我的工作,浮点,它的工作完美,但对于科学记数法和八进制不实际工作不知道为什么!! 我也可以使用模式编译!如果是,怎么办 谢谢你的帮助 下面是检查浮点的工作Java 如何使用正则表达式检查字符串是否为科学符号?,java,regex,pattern-matching,Java,Regex,Pattern Matching,我想检查用户输入,这是我将得到的字符串,并传递给一个数组!现在我想用正则表达式来看看这个数字是否是科学符号!我也想为八进制做同样的事情!!! 我这里有我的工作,浮点,它的工作完美,但对于科学记数法和八进制不实际工作不知道为什么!! 我也可以使用模式编译!如果是,怎么办 谢谢你的帮助 下面是检查浮点的工作 private static boolean floating(String [] data) { int count =0; boolean correct = false;
private static boolean floating(String [] data) {
int count =0;
boolean correct = false;
for (int i = 0; i < data.length; i++) {
if (str.matches("((-|\\+)?[0-9]+(\\.[0-9]+)?)+")){
System.out.println(" it's a floating number ");
correct= true;
break;
}else
correct = false;
}if (correct ==true){
return true;
}else
return false;
}
私有静态布尔浮点(字符串[]数据){
整数计数=0;
布尔正确=错误;
对于(int i=0;i
这是我的科学记数法的方法和表达方式
private void SNotation(String [] data) {
int count =0;
boolean correct = false;
for (int i = 0; i < data.length; i++) {
if (str.matches('(?<![\d.])(?!\.\.)(?<![\d.][eE][+-])(?<![\d.][eE])(?<!\d[.,])'){
/// here is not accepting the expression which i believe is right !!
System.out.println(" it's a floating number ");
correct= true;
break;
}else
correct = false;
}if (correct ==true){
return true;
}else
return false;
for pattern compile i found these rules but dont know how should i use it !
private void SNotation(字符串[]数据){
整数计数=0;
布尔正确=错误;
对于(int i=0;i if(str.matches(')(?您可以对它们全部使用一个正则表达式。每个捕获组匹配一个不同的
类型
“^(?:([+-]?(?:\\d+\\.\\d*.\\\\.\\d+)(\\\\[0-7]+)([+-]?\\d+)([+-]?(?:\\d+(?:\.\\d*)?\.\\d+[eE][+-]?\\d+)$”
格式化
^
(?:
( # (1 start), Float
[+-]?
(?:
\d+ \. \d*
| \. \d+
)
) # (1 end)
|
( \\ [0-7]+ ) # (2), Octal
|
( # (3 start), Integer
[+-]?
\d+
) # (3 end)
|
( # (4 start), Scientific Notation
[+-]?
(?:
\d+
(?: \. \d* )?
| \. \d+
)
[eE] [+-]? \d+
) # (4 end)
)
$