我正在制作一个简单的程序来处理方程式的String输入中的方程式当我运行它时,我得到一个例外,因为我试图用"+"替换"+"所以我可以分割字符串在空间.我应该如何使用
字符串replaceAll方法来替换这些特殊字符?以下是我的代码
线程"main"中的异常java.util.regex.PatternSyntaxException:在索引0附近悬挂元字符'+'+ ^
public static void parse(String x){
String z = "x^2+2=2x-1";
String[] lrside = z.split("=",4);
System.out.println("Left side: " + lrside[0] + " / Right Side: " + lrside[1]);
String rightside = lrside[0];
String leftside = lrside[1];
rightside.replaceAll("-", " -");
rightside.replaceAll("+", " +");
leftside.replaceAll("-", " -"); leftside.replaceAll("+", " +");
List<String> rightt = Arrays.asList(rightside.split(" "));
List<String> leftt = Arrays.asList(leftside.split(" "));
System.out.println(leftt);
System.out.println(rightt);
Run Code Online (Sandbox Code Playgroud) 我正在看这个简单的程序.我的理解是,尝试修改超出最大索引的内存地址的值应该导致分段错误.但是,以下代码运行没有任何问题.我甚至能够打印出所有6个数组索引0-> 6
main()
{
int i;
int a[3];
for(i=0; i<6; i++)
a[i] = i;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我将for循环更改为
for(i=0; i<7; i++)
Run Code Online (Sandbox Code Playgroud)
并执行该程序,它将是段错误.这几乎在我看来它是由malloc完成的某种额外填充.为什么这只发生在第6个索引(s + 6)之后?更长/更短的阵列会发生这种行为吗?请原谅我是愚蠢的低级程序员:)
无论我似乎尝试什么,用输入替换白色空间
2x= -3
Run Code Online (Sandbox Code Playgroud)
将导致字符串被截断为2x =.
public void parseEquation(String x){
String adf = x;
String z = adf.replaceAll("\\s","");
System.out.println(z);
}
Run Code Online (Sandbox Code Playgroud)
第一行是我的输入,下一行是我的输出

我正在尝试使用google voice api创建一个java应用程序,并且获取SMS数据和convos的方法会返回一个像这样的整个html页面
我编写了一个SMSMessage类,它将HTML作为String接收,并将解析标记之间的第一个消息数据,但它使用的是arrayList而不是Hashmap.
package gv;
import java.util.*;
import java.util.regex.*;
public class SMSMessage {
protected String id;
protected String phoneNumber;
protected String displayNumber;
protected String message;
protected String startTime;
protected String displayStartDateTime;
protected boolean isRead;
protected String messageText;
public SMSMessage(String x){
parse(TruncateFirstMessage(x));
parseresponse(x);
}
public String TruncateFirstMessage(String xml){
int firstbracket = xml.indexOf("{");
//int secondbracket = xml.indexOf("{", firstbracket - 1);
int thirdbracket = xml.indexOf("}");
int fourthbracket = xml.indexOf("}", thirdbracket - 1);
return xml.substring(firstbracket, fourthbracket);
}
private void parseresponse(String init){
String …Run Code Online (Sandbox Code Playgroud)