Java 以中缀形式拆分字符串

Java 以中缀形式拆分字符串,java,string,text,split,Java,String,Text,Split,有件事我想知道。我有家庭作业,他们希望我们以多项式形式输入两个字符串,并且有很多实现。这里我的问题是:当我从用户那里获取输入时,我可以将字符串拆分为多项式部分,但它出错了: 字符串:“-x^3-6x^2+4x+22” 我想将其拆分为: -x^3 - 6x^2 + 4x + 22 但它会打印出来 package splitmethod; import java.util.Scanner; import java.io.*; public clas

有件事我想知道。我有家庭作业,他们希望我们以多项式形式输入两个字符串,并且有很多实现。这里我的问题是:当我从用户那里获取输入时,我可以将字符串拆分为多项式部分,但它出错了:

字符串:
“-x^3-6x^2+4x+22”

我想将其拆分为:

-x^3                      
- 6x^2 
+ 4x 
+ 22
但它会打印出来

package splitmethod;
import java.util.Scanner;
import java.io.*;

public class uygulama {

  public static void main(String args[]){


      System.out.println("lütfen parçalmak istidigniz polinomu girniz ");

      Scanner input= new Scanner(System.in);

      String polinom= input.nextLine();

      String[] result;

      System.out.println("");

      result=polinom.replaceAll("\\s+","").split("(?<=[+-])");

      for(int i=0;i<result.length;i++){

          System.out.println(result[i]);
包拆分方法;
导入java.util.Scanner;
导入java.io.*;
公共类维吾尔语{
公共静态void main(字符串参数[]){
系统。
扫描仪输入=新扫描仪(System.in);
字符串polinom=input.nextLine();
字符串[]结果;
System.out.println(“”);

result=polinom.replaceAll(“\\s+”,”).split((?我实际上认为您不需要使用
regex
。只需遍历
字符串就足够了,检查
+/-
就足够了。类似于:

StringBuilder sb = new StringBuilder();
for(int i=0;i<polinom.length;i++) {
    if(i!=0 && (polinom.charAt(i)=='-' || polinom.charAt(i)=='+')) {
        System.out.println(sb.toString());
        sb = new StringBuilder();
        sb.append(polinom.charAt(i));
    } else {
        sb.append(polinom.charAt(i));
    }
}
System.out.println(sb.toString());
StringBuilder sb=新建StringBuilder();
对于(int i=0;iregexp
”(?
(?
导入java.util.Scanner;
公共类维吾尔语{
公共静态void main(字符串参数[]){
系统。
扫描仪输入=新扫描仪(System.in);
字符串polinom=input.nextLine();
字符串[]结果;
System.out.println(“”);
result=polinom.split(“”;//只按空格分割单词,这样前面的符号就不会存储在与寻址变量/系数组合相同的数组中

对于(int i=0;我请多花点时间重写你的问题。Aleady是问题的第五个版本,但没有人修改标题…你的代码没有编译,你也没有说实际输出是什么。你可能应该修改这些东西。不,我的代码有效,我写了我想要打印的东西。非常感谢你,我已经搜索了几个小时来找到它s解决方案:D
-x^3
+6x^2
+4x
+22
-|x^3-|6x^2+|4x+|22
String polinom = "-x^3 - 6x^2 + 4x + 22";//here you pass data from user

Scanner scanner = new Scanner(polinom);
scanner.useDelimiter("(?=[+-])");

while (scanner.hasNext())
    System.out.println(scanner.next());

scanner.close();
-x^3 
- 6x^2 
+ 4x 
+ 22
import java.util.Scanner;
public class uygulama {
    public static void main(String args[]) {


      System.out.println("lütfen parçalmak istidigniz polinomu girniz ");

      Scanner input= new Scanner(System.in);

      String polinom= input.nextLine();

      String[] result;

      System.out.println("");

      result = polinom.split(" "); //just splits the words by space so the signs in front are not stored in the same array as the addressed variable/coefficient combo

      for(int i=0;i<result.length;i++){

          System.out.println(result[i]);
      }

    }

}