Java 使用扫描器分离字符串
我试图将数字(包括Double)与字符串(如“4+5*(4.5+6)”)分开。 我想用扫描仪把数字和字符串分开。我想知道是否有更好的方法来做这件事,并知道如何用扫描仪来做? 这是我的代码,只是想检查它是否工作,它抛出了一个异常Java 使用扫描器分离字符串,java,string,java.util.scanner,Java,String,Java.util.scanner,我试图将数字(包括Double)与字符串(如“4+5*(4.5+6)”)分开。 我想用扫描仪把数字和字符串分开。我想知道是否有更好的方法来做这件事,并知道如何用扫描仪来做? 这是我的代码,只是想检查它是否工作,它抛出了一个异常 package testzehavit; import java.util.Scanner; public class main { public static void main(String[] args) { Scanner s= ne
package testzehavit;
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner s= new Scanner("443+54+24");
s.useDelimiter("+");
System.out.println(s.next());
}
}
谢谢扫描仪分隔符是正则表达式。符号“+”在正则表达式中表示“一次或多次” 您要做的是:
public static void main(String[] args) {
Scanner s= new Scanner("443+54+24");
s.useDelimiter("\\+");
System.out.println(s.next());
}
扫描程序分隔符是正则表达式。符号“+”在正则表达式中表示“一次或多次” 您要做的是:
public static void main(String[] args) {
Scanner s= new Scanner("443+54+24");
s.useDelimiter("\\+");
System.out.println(s.next());
}
使用String.contains();方法。
您可以将一个表示数字和操作数范围的正则表达式放入其中,或者执行一个简单的for循环,并将每个迭代解析为字符串,以将其作为参数传递给contains方法
很抱歉没有演示任何代码,但我正在使用手机。
Google String.contains()和正则表达式。你应该能够将两者结合起来 使用String.contains();方法。
您可以将一个表示数字和操作数范围的正则表达式放入其中,或者执行一个简单的for循环,并将每个迭代解析为字符串,以将其作为参数传递给contains方法
很抱歉没有演示任何代码,但我正在使用手机。
Google String.contains()和正则表达式。你应该能够将两者结合起来 由于该方法采用正则表达式而不是文本字符串,因此必须转义+
。在Java中,用双反斜杠转义\\
。此代码:
public static void main(String[] args) {
Scanner s = new Scanner("443+54+24");
s.useDelimiter("\\+");
System.out.println(s.next());
}
打印来自的443
您必须转义+
,因为该方法采用正则表达式而不是文字字符串。在Java中,用双反斜杠转义\\
。此代码:
public static void main(String[] args) {
Scanner s = new Scanner("443+54+24");
s.useDelimiter("\\+");
System.out.println(s.next());
}
打印公共静态void main(字符串[]args){
}公共静态void main(字符串[]args){
}谢谢!如果我想使用多个delimeter怎么办?(例如字符串“4+5*(4.5+6)”)。有可能吗?然后使用
\+\\\\\\*
你可以@Jovani使用“[+*\(\\)\\.\\.\\.\.\]””
@TimBiegeleisen的答案很好,但如果我是你,我会看看正则表达式是如何构建的:然后你可以使用一个在线工具来尝试你的正则表达式(比如)另外,你可以把注意力集中在数学上,这里有一个关于这个主题的问题示例:谢谢!如果我想使用多个delimeter怎么办?(例如字符串“4+5*(4.5+6)”。有可能吗?然后使用\+\\\\\\\*
你可以@Jovani使用“[+*\(\\)\\\.\””
@TimBiegeleisen的答案很好,但是如果我是你,我会看看正则表达式是如何构建的:然后你可以使用一个在线工具来尝试你的正则表达式(比如),你也可以专注于数学,下面是一个关于这个主题的问题示例:你是否计划计算一个嵌套的算术表达式?不要使用正则表达式,使用解析器。您是否计划对嵌套算术表达式求值?不要使用正则表达式,使用解析器。