包含javaclcr的词条
今天给各位分享javaclcr的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、高分求教java读取XML文档问题..
- 2、Java写一个计算器 控制台输入算式 可以实现先乘除后加减 没有括号功能 只有加减乘除
- 3、求字符串解析四则运算的Java代码
- 4、java语言中cl,rn,ct分别是什么意思啊?
高分求教java读取XML文档问题..
首先搞清楚解析XML的方法都有哪些:
1. Dom4J 使用接口和抽象基本类方法。大量使用了API中的Collections 类
2. JDom 使用具体类。大量使用了API中的Collections类。自身不包含解析器,通常使用SAX2解析器来解析和验证输入XML文档
3. SAX 类似于流媒体的优点。采用了基于事件的模型
4. Dom 基于树或基于对象,树在内存中是持久
给你Dom4J的例子:
private void parseUseDom4J() {
long startDT = System.currentTimeMillis();
try {
File file = new File(FILE_NAME_PATH);
SAXReader saxReader = new SAXReader();
Document docuemnt = saxReader.read(file);
Element root = docuemnt.getRootElement();
Element foo;
for (Iterator iterator = root.elementIterator("value"); iterator.hasNext();) {
foo = (Element) iterator.next();
System.out.println(foo.elementText(NAME_C));
System.out.println(foo.elementText(NAME_E));
System.out.println(foo.elementText(ADDRESS));
System.out.println(foo.elementText(ZIP));
System.out.println(foo.elementText(WEBSITE));
System.out.println(foo.elementText(EDITOR));
System.out.println(".............................................");
}
System.out.println("解析完毕!");
} catch (Exception ex) {
ex.printStackTrace();
}
System.out.println(System.currentTimeMillis() - startDT);
}
Java写一个计算器 控制台输入算式 可以实现先乘除后加减 没有括号功能 只有加减乘除
你自己研究下,这个代码,别人写的:
import java.util.Scanner;
public class T {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//String str = "54151+819*5165+15-48/189+5961";
System.out.println("请输入算式,按回车键结束:");
String str = scan.nextLine();
System.out.println(cacComplex(str));
}
private static double cacComplex(String str) {
if (str.equals(""))
return 0;
System.out.println("CAC:" + str);
str = str.replaceAll("[\\[\\{]", "(").replaceAll("[\\]\\}]", ")");
int cl = str.lastIndexOf('(');
if (cl == -1)
return cac(str);
int cr = str.indexOf(')', cl);
String left = str.substring(0, cl);
String right = str.substring(cr + 1);
String middle = str.substring(cl + 1, cr);
return cacComplex(left + cac(middle) + right);
}
public static double cac(String str) {
if (str.equals(""))
return 0;
int ml = str.indexOf('*');
int dl = str.indexOf('/');
if (ml == -1 dl == -1) {
return cacNoMD(str);
}
int index = ml == -1 ? dl : ml;
// 4+5*6*7+8
String left = str.substring(0, index);// 4+5
String m1 = lastNumber(left);
left = left.substring(0, left.length() - m1.length());
String right = str.substring(index + 1);// 6*7+8
String m2 = firstNumber(right);// m2:6
right = right.substring(m2.length());// *7+8
double d1 = Double.parseDouble(m1);
double d2 = Double.parseDouble(m2);
double tmp = 0;
if (index == ml) {
tmp = d1 * d2;
} else if (index == dl) {
tmp = d1 / d2;
}
return cac(left + tmp + right);
}
private static String lastNumber(String str) {
StringBuilder sb = new StringBuilder();
for (int i = str.length() - 1; i = 0; i--) {
char c = str.charAt(i);
if (!Character.isDigit(c) c != '.')
break;
sb.append(c);
}
return sb.reverse().toString();
}
private static String firstNumber(String str) {
StringBuilder sb = new StringBuilder();
for (char c : str.toCharArray()) {
if (!Character.isDigit(c) c != '.')
break;
sb.append(c);
}
return sb.toString();
}
private static double cacNoMD(String str) {
double ret = 0;
StringBuilder sb = new StringBuilder();
char sign = '+';
for (char c : (str + "+").toCharArray()) {
if (!Character.isDigit(c) c != '.') {
if (sb.length() == 0)
continue;
double tmp = Double.parseDouble(sb.toString());
if (sign == '+') {
ret += tmp;
} else {
ret -= tmp;
}
sb = new StringBuilder();
sign = c;
} else {
sb.append(c);
}
}
return ret;
}
}
请输入算式,按回车键结束:
54151+819*5165+15-48/189+5961
CAC:54151+819*5165+15-48/189+5961
4290261.746031746
求字符串解析四则运算的Java代码
package samples;
/**
* @author sghitxia
*
*/
public class C {
public static void main(String[] args) {
String str = "(1+{1+2+3+[2+(4+5)+(9+3*7*6)]}+2+{3*5+[2+(4+5)+(9+3)]}+2)";
System.out.println(cacComplex(str));
}
private static double cacComplex(String str) {
if (str.equals(""))
return 0;
System.out.println("CAC:" + str);
str = str.replaceAll("[\\[\\{]", "(").replaceAll("[\\]\\}]", ")");
int cl = str.lastIndexOf('(');
if (cl == -1)
return cac(str);
int cr = str.indexOf(')', cl);
String left = str.substring(0, cl);
String right = str.substring(cr + 1);
String middle = str.substring(cl + 1, cr);
return cacComplex(left + cac(middle) + right);
}
public static double cac(String str) {
if (str.equals(""))
return 0;
int ml = str.indexOf('*');
int dl = str.indexOf('/');
if (ml == -1 dl == -1) {
return cacNoMD(str);
}
int index = ml == -1 ? dl : ml;
// 4+5*6*7+8
String left = str.substring(0, index);// 4+5
String m1 = lastNumber(left);
left = left.substring(0, left.length() - m1.length());
String right = str.substring(index + 1);// 6*7+8
String m2 = firstNumber(right);// m2:6
right = right.substring(m2.length());// *7+8
double d1 = Double.parseDouble(m1);
double d2 = Double.parseDouble(m2);
double tmp = 0;
if (index == ml) {
tmp = d1 * d2;
} else if (index == dl) {
tmp = d1 / d2;
}
return cac(left + tmp + right);
}
private static String lastNumber(String str) {
StringBuilder sb = new StringBuilder();
for (int i = str.length() - 1; i = 0; i--) {
char c = str.charAt(i);
if (!Character.isDigit(c) c != '.')
break;
sb.append(c);
}
return sb.reverse().toString();
}
private static String firstNumber(String str) {
StringBuilder sb = new StringBuilder();
for (char c : str.toCharArray()) {
if (!Character.isDigit(c) c != '.')
break;
sb.append(c);
}
return sb.toString();
}
private static double cacNoMD(String str) {
double ret = 0;
StringBuilder sb = new StringBuilder();
char sign = '+';
for (char c : (str + "+").toCharArray()) {
if (!Character.isDigit(c) c != '.') {
if (sb.length() == 0)
continue;
double tmp = Double.parseDouble(sb.toString());
if (sign == '+') {
ret += tmp;
} else {
ret -= tmp;
}
sb = new StringBuilder();
sign = c;
} else {
sb.append(c);
}
}
return ret;
}
}
java语言中cl,rn,ct分别是什么意思啊?
你所说的这些 cl, rn, ct 都不是 Java 中的代码。
这是 类似 HTML 中表单信息的一些内容。
具体什么含义,百度自己定义。
建议先学会 HTML 表单,你就明白了。
javaclcr的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javaclcr的信息别忘了在本站进行查找喔。