gpt4 book ai didi

Java Unicode 到 TextArea

转载 作者:行者123 更新时间:2023-12-02 07:00:52 24 4
gpt4 key购买 nike

好的,所以我已经尝试了所有方法,甚至将 unicode 硬编码到我的程序中,但我的条件语句不会读取到 TextArea 中匹配的 √- 。我正在编写一个计算器程序,我希望 Java 将其读取为 NaN。当我使用 TextArea 本身时,它只会跳过我的 else if 语句。我在没有 TextArea 的情况下测试了它,得到 NaN,但返回 TextArea 中使用的数字。

例如:

测试程序(无 GUI)--> 运行完美,输出 NaN

String Text = "√-25";
System.out.println(Text);
ArrayList<String> OP = new ArrayList();
ArrayList<Float> NUM = new ArrayList();
Scanner OPscan = new Scanner(Text).useDelimiter("[[.][0-9]]+");
Scanner NUMscan = new Scanner(Text).useDelimiter("[-+*/√]+");
int iOP = 0;
int iNUM = 0;
float Root = 0;
while (OPscan.hasNext()) {
OP.add(OPscan.next());
}
OPscan.close();
System.out.println(OP + "OP Size: " + OP.size());

while (NUMscan.hasNextFloat()) {
if (OP.get(iOP).equals("-")) {
NUM.add(-NUMscan.nextFloat());
OP.set(iOP, "+");
} else if (OP.get(iOP).equals("--")) {
NUM.add(-NUMscan.nextFloat());
OP.set(iOP, "-");
} else if (OP.get(iOP).equals("+-")) {
NUM.add(-NUMscan.nextFloat());
OP.set(iOP, "+");
} else if (OP.get(iOP).equals("*-")) {
NUM.add(-NUMscan.nextFloat());
OP.set(iOP, "*");
} else if (OP.get(iOP).equals("/-")) {
NUM.add(-NUMscan.nextFloat());
OP.set(iOP, "/");
} else if (OP.get(iOP).equals("√-")) {
NUM.add(-NUMscan.nextFloat());
OP.set(iOP, "√");
} else {
NUM.add(NUMscan.nextFloat());
}
iOP++;
}
System.out.println(NUM + "NUM Size: " + NUM.size());
System.out.println(OP + "NUM Size: " + NUM.size());

while (OP.contains("√")) {
try {
if (OP.get(iOP).equals("√")) {
Root = (float) Math.sqrt(NUM.get(iNUM));
NUM.set(iNUM, Root);
OP.remove(iOP);

System.out.println(Root + " Root!");
}

if (OP.get(0).matches("[+-*/]+")) {
iOP++;
iNUM++;
}
} catch (IndexOutOfBoundsException IndexOutOfBoundsException) {
System.out.println("Index Error Bypassed! " + "INDEX: " + "iOP:" + iOP + " iNUM:" + iNUM + " | Size: " + "iOP:" + OP.size() + " iNUM:" + NUM.size());
iOP = 0;
iNUM = 0;
}
}

带有 GUI 和 TextArea 输出的程序 --> 只需 25

最佳答案

使用Unicode representation

\u221A

例如

public static void main(String[] args) {
System.out.println("Encoding: " + System.getProperty("file.encoding"));
JTextArea area = new JTextArea(10, 30);
JScrollPane pane = new JScrollPane(area);
JOptionPane.showMessageDialog(null, pane);
String text = area.getText();
char sqrt = '\u221A';
if (text.contains(Character.toString (sqrt))) {
System.out.println("YES for " + text);
} else {
System.out.println("NO for " + text);
}
}

关于Java Unicode 到 TextArea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16674305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com