私はプロジェクトに取り組んでおり、a1 =( "hello" + "World")のような入力を適切に解析する方法を知りません。 a1は私が作った細胞で、最後にはその細胞にhelloworldを入れようとしています。これは私が解析入力を使用する私のクラスの一つです。私は数字を使用するとうまく動作しますが、文字列では動作しません。 Imちょうどhimanのような入力を( "hi" + "man")のように解析できるようにしようとしています。私は、スペースとプラス記号を解析し、ヒーランドを単一の文字列にすることができればいいだけです。どのように文字列を渡し、それらを結合して新しい変数を作成するか(文字列連結の問題)?
import java.util.Scanner;
public class ParseInput {
private static String inputs;
static int col;
private static int row;
private static String operation;
private static Value field;
public static void parseInput(String input){
//splits the input at each regular expression match. \w is used for letters and \d && \D for integers
inputs = input;
Scanner tokens = new Scanner(inputs);
String[] strings = input.split("=");
String s1 = strings[0].trim(); // a1
String s2 = strings[1].trim(); // "Hello" + "World"
strings = s2.split("\\+");
String s3 = strings[0].trim().replaceAll("^\"", "").replaceAll("\"$", ""); // Hello
String s4 = strings[1].trim().replaceAll("^\"", "").replaceAll("\"$", ""); // World
String field = s3 + s4;
String colString = s1.replaceAll("[\\d]", ""); // a
String rowString = s1.replaceAll("[\\D]", ""); // 1
int col = colString.charAt(0) - 'a'; // 0
int row = Integer.parseInt(rowString);
TextValue fieldvalue = new TextValue(field);
Spreadsheet.changeCell(row, col, fieldvalue);
String none0 = tokens.next();
@SuppressWarnings("unused")
String none1 = tokens.next();
operation = tokens.nextLine().substring(1);
String[] holder = new String[2];
String regex = "(?<=[\\w&&\\D])(?=\\d)";
holder = none0.split(regex);
row = Integer.parseInt(holder[1]);
col = 0;
int counter = -1;
char temp = holder[0].charAt(0);
char check = 'a';
while(check <= temp){
if(check == temp){
col = counter +1;
}
counter++;
check = (char) (check + 1);
}
System.out.println(col);
System.out.println(row);
System.out.println(operation);
setField(Value.parseValue(operation));
Spreadsheet.changeCell(row, col, fieldvalue);
}
public static Value getField() {
return field;
}
public static void setField(Value field) {
ParseInput.field = field;
}
}
あなたがしようとしていることについてもっと詳しく説明できますか? –
しました。私はちょうどa1 =( "hel" + "lo")のような入力を適切に解析する方法を知りたいと思っています。 – user1321012