`

Java最优调用python

 
阅读更多
public static void main (String[] args) throws Exception{
		String path = "C:\\Users\\Administrator\\PycharmProjects\\testext\\jcpy.py";
		//path = path.replaceAll("/", "\\");
		Process proc = Runtime.getRuntime().exec("python");
		OutputStream ots = proc.getOutputStream();
		BufferedWriter osw = new BufferedWriter(new OutputStreamWriter(ots));
		osw.newLine();
		osw.write("print ('hello')");
		osw.newLine();
		osw.write("print ('word')");
		osw.newLine();
		osw.write("exit(200)");
		osw.flush();
		osw.close();
		InputStream ins = proc.getInputStream();
		BufferedReader br = new BufferedReader(new InputStreamReader(ins));
		String line = br.readLine();
		while (line != null){
			System.out.println(line);
			line = br.readLine();
		}
		proc.waitFor();
		System.out.println(proc.exitValue());
	}

 

public static void main (String[] args) throws Exception{
		String[] unknown = {"x","y"};
		String[] expression = {"x+y-5"};
		testJieFangCheng(unknown,expression);
	}
	
	public static void testJieFangCheng(String[] unknown, String[] expression) throws Exception{
		Process proc = Runtime.getRuntime().exec("python");
		OutputStream ots = proc.getOutputStream();
		BufferedWriter osw = new BufferedWriter(new OutputStreamWriter(ots));
		osw.newLine();
		osw.write("from sympy import *");
		StringBuffer showElement = new StringBuffer("[");
		for (String ele : unknown){
			osw.newLine();
			osw.write(ele.concat(" = Symbol('").concat(ele).concat("')"));
			showElement.append(ele).append(",");
		}
		showElement.delete(showElement.length()-1, showElement.length()).append("]");
		
		StringBuffer showExpre = new StringBuffer("["); 
		for (String expre : expression){
			showExpre.append(expre).append(",");
		}
		showExpre.delete(showExpre.length()-1, showExpre.length()).append("]");
		
		StringBuffer result = new StringBuffer("result = solve(");
		result.append(showExpre).append(",").append(showElement).append(")");
		osw.newLine();
		osw.write(result.toString());
		osw.newLine();
		osw.newLine();
		osw.write("print (result)");
		osw.newLine();
		osw.write("exit()");
		osw.flush();
		osw.close();
		InputStream ins = proc.getInputStream();
		BufferedReader br = new BufferedReader(new InputStreamReader(ins));
		String line = br.readLine();
		while (line != null){
			System.out.println(line);
			line = br.readLine();
		}
		proc.waitFor();
		System.out.println(proc.exitValue());
	}

 

分享到:
评论

相关推荐

    华为OD机试C卷- 寻找最优的路测线路(Java & JS & Python & C).md-私信看全套OD代码及解析

    这里分别提供Java和Python两种语言的实现示例: **Java版本** ```java public class SignalQualityRoute { public static int optimalRouteScore(int[][] grid) { int R = grid.length; int C = grid[0].length...

    使用Java与Python实现十大排序算法之快速排序

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。...Python和Java的实现展示了该算法的基本逻辑,即分区和递归调用,这两种语言的实现方式虽然不同,但核心思想是一致的。

    学习数据结构与算法的代码示例,目前提供 Java、Python、Go、C++ 多种语言支持。.zip

    这个压缩包文件包含了一系列用于学习数据结构和算法的代码示例,覆盖了Java、Python、Go、C++这四种主流编程语言,使得学习者可以根据自己的偏好选择合适的语言进行学习。 首先,我们来深入了解数据结构。数据结构...

    华为OD机试C卷-小朋友分组最少调整次数(Java & JS & Python & C).md-私信看全套OD代码及解析

    - **适用语言**:本题适用于多种编程语言,如Java, JavaScript, Python 和 C。 - **问题描述**:题目涉及到将一组学生按照特定的方式重新分组,即从一种排列方式调整到另一种排列方式。题目要求给出的初始排列和目标...

    数据结构和算法详细分析用C-python-java详解.rar

    本资料集合涵盖了这方面的详细分析,使用了C、Python和Java三种编程语言进行讲解,适合不同背景的开发者学习。 1. **数据结构**: - **数组**:是最基本的数据结构,提供了按索引访问元素的能力。 - **链表**:非...

    JAVA数据结构与算法

    5. **贪心算法**:每次做出局部最优选择,期望全局最优,如霍夫曼编码、Prim算法构建最小生成树。 6. **回溯法**:通过试探性地做出决策,当发现不符合要求时撤销上一步,如八皇后问题、N皇后问题等。 7. **分治...

    libsvm java实用说明

    它提供了多种编程语言的接口,包括Java、Python、MATLAB等。在这个文档中,我们将重点讨论如何在Java环境下使用LibSVM进行二次开发。 首先,你需要从官方网站(http://www.csie.ntu.edu.tw/~cjlin/libsvm/)下载...

    XGBoost算法Python实战(代码).zip

    3. 提供接口:除了Python,XGBoost还支持R、Java、C++等多种语言,方便不同平台和项目的需求。 通过以上步骤,你可以掌握XGBoost算法的Python实战技巧。在实际应用中,不断尝试和调整参数,理解模型行为,将有助于...

    Python-收集Python中意想不到行为的经典和棘手的例子并讨论究竟发生了什么事情

    Python中的变量赋值并不像C++或Java那样创建副本,而是创建对象引用。这意味着当两个变量指向同一个对象时,改变其中一个会影响到另一个。例如: ```python a = [1, 2, 3] b = a b.append(4) print(a) # 输出...

    数据结构与算法分析(Java版)

    贪心算法每次做出局部最优决策,期望整体结果也是最优的。回溯法则是一种试探性解决问题的方法,当发现当前选择无法达到目标时,会撤销之前的决策并尝试其他路径。 在实际编程中,理解和熟练运用数据结构与算法是...

    使用 python 学习数据结构与算法.zip

    本资源包"使用Python学习数据结构与算法.zip"包含了针对C/C++/JAVA/Python的数据结构学习笔记和资料,为大学生提供了全面的学习资源。 数据结构是指在计算机中组织和存储数据的方式,它直接影响着算法的效率。主要...

    java版数据结构与算法(中文)

    5. **贪心算法**:每次做出局部最优选择,以期望达到全局最优。比如Prim算法和Kruskal算法用于最小生成树问题。 6. **回溯**:在解决问题时尝试所有可能的路径,直到找到解决方案或确定无解,如八皇后问题。 7. **...

    数据结构与算法分析_Java语言描述(第2版)

    - 贪心算法:每一步都采取局部最优策略,以期达到全局最优。 - 回溯法:在解决问题时,当发现当前选择不满足条件时,退回一步重新选择,常用于解谜题和组合优化问题。 3. Java编程实践: - 类和对象:Java面向...

    使用OpenTripPlanner和Python估算旅行时间矩阵的可重.zip

    3. **查询接口**:编写Python代码调用OTP的REST API,发送起点和终点对的请求,获取旅行时间矩阵。 4. **结果处理**:将API返回的旅行时间信息解析并存储,通常会形成一个矩阵,每个元素表示一对起点和终点之间的...

    数据结构与算法分析(Java版英文

    3. 栈:后进先出(LIFO)的数据结构,常用于函数调用、表达式求解等场景。 4. 队列:先进先出(FIFO)的数据结构,适用于任务调度、打印队列等。 5. 树:包括二叉树、平衡树(如AVL树、红黑树)、B树、B+树等,广泛...

    数据结构与算法(JAVA语言版)

    - **栈**:后进先出(LIFO)的数据结构,常用于函数调用、表达式求值等。 - **队列**:先进先出(FIFO)的数据结构,适用于处理等待服务的任务。 - **树**:分层结构,每个节点可以有零个或多个子节点,如二叉树...

    高德地图路径规划api,批量获取坐标点间的距离,驾车时间等

    1. 驾车路径规划:适用于汽车导航,提供最优的驾车路线,包括躲避拥堵、高速优先等多种策略。 2. 步行路径规划:适用于步行或骑行者,计算出最短或最少转弯的步行路线。 3. 批量获取距离和时间:对于物流、配送等...

    实验报告1

    本实验涵盖了六种不同的编程语言:Intel x86 Assembly(Nasm)、C++、Java、Haskell和Python。每种语言都要求完成相同的功能,以此来比较它们在代码量、运行速度和编程体验上的区别。实验内容可能包括但不限于基础的...

    线程安全队列Queue

    4. **生产消费策略**:根据项目的实际需求,可以灵活调整生产者和消费者的数量及策略,以达到最优的资源分配和负载均衡。 #### 六、总结 通过对`BlockingQueue`的应用,我们可以有效地解决项目中的巡检任务管理问题...

Global site tag (gtag.js) - Google Analytics