`
jythoner
  • 浏览: 608991 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用Java解PythonChallenge(第一天)

阅读更多
www.pythonchallenge.com是一个学习python语言的过关游戏,非常有意思。很早以前就知道了这个网站,但是因为python水平不佳,所以一直想等水平再高一点点再去玩。
周五的时候和同事们谈论起了Python,Ruby等动态语言与Java语言相比的一些优势,我举了pythonchanllenge中的第0题:计算2的38次方的例子,结果几个同事都对此产生了兴趣,不断的去用java来攻关,呵呵,希望大家也参与到进来,给出你的方法:)

玩法介绍:我代码注释中的网址就是题目,过关方式是将题目的答案替换掉url中的题号,比如第0题的题目是http://www.pythonchallenge.com/pc/def/0.html,过关方法就是计算出2的38次方以后,将答案274877906944.html替换掉0.html,http://www.pythonchallenge.com/pc/def/274877906944.html即第1题的题目,以此类推。

1.
import java.math.BigDecimal;

//http://www.pythonchallenge.com/pc/def/0.html
public class ChallengeZero {
	public static void main(String[] args) {
		BigDecimal a = new BigDecimal(2);
		BigDecimal b = a.pow(38);
		System.out.print(b);
	}
}


2.
public class ChallengeOne {
	// http://www.pythonchallenge.com/pc/def/map.html
	public static void main(String[] args) {
		String from = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj. ";
		//String from = "map";
		String to = new ChallengeOne().translate(from);

		System.out.println(to);
	}

	public String translate(String s) {
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < s.length(); i++) {
			if (String.valueOf(s.charAt(i)).matches("[A-Z]|[a-z]")) {
				if (s.charAt(i) == 'y') {
					sb.append('a');
				} else if (s.charAt(i) == 'z') {
					sb.append('b');
				} else {
					sb.append((char) (s.charAt(i) + 2));
				}
			} else {
				sb.append(s.charAt(i));
			}
		}
		return sb.toString();
	}
}

注:题目中的那串字符串的最终意思是让你用写好的转换方法来转换url中的单词,也就是map

3.
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class ChallengeTwo {
	// http://www.pythonchallenge.com/pc/def/ocr.html
	public static void main(String[] args) {
		try {
			BufferedReader br = new BufferedReader(new FileReader(System.getProperty("user.dir")+"\\ocr.txt"));
			String temp=null;
			while ((temp=br.readLine()) != null) {
				for(int i=0;i<temp.length();i++){
					if(String.valueOf(temp.charAt(i)).matches("[A-Z]|[a-z]")){
						System.out.print(temp.charAt(i));
					}
				}
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

注:网页的源码中有用注释写的一段乱码,其中混杂着几个英文字母,我们要做的就是将其中的英文字母找出来
1
0
分享到:
评论

相关推荐

    java2python--java代码转python工具

    Java到Python的转换工具,如标题“java2python”所示,是编程领域中的一种实用技术,旨在帮助开发者将已有的Java代码转换为Python语言。这种转换对于那些熟悉Java但希望进入Python生态系统,或者想要利用Python特定...

    java For python 程序员

    1. Java教程是为Python程序员准备的,目的是帮助已经熟练使用Python的开发者快速学习Java语言,并迁移到Java编程环境上。 2. Java教程同样适合那些想掌握大数据基础技能的算法工程师,因为Java是处理大数据领域中...

    GRPC简单应用(Java+Python)

    3. 生成Java代码:使用protoc编译器生成Java代码,这将创建一个服务接口和消息类型的Java类。 4. 实现服务端:创建一个实现了GreeterService的类,处理SayHello请求。 5. 启动服务端:创建一个主类,实例化Server...

    用java调用python

    Jython 是一个 Python 的 Java 实现,它允许你在 Java 平台上直接运行 Python 代码。通过 Jython,Java 可以直接调用 Python 类和模块,实现无缝集成。但要注意,Jython 不支持所有 Python 库,特别是 C 扩展的库。...

    java2python, 将Java源代码转换为 python的简单但有效的库.zip

    java2python, 将Java源代码转换为 python的简单但有效的库 java2python简单而有效的工具将Java源代码转换为 python 。java2python包可以翻译任何语法有效的Java源代码文件。 生成的python 代码不能保证运行,也不...

    java调用python入门详解

    1. **Jython**: 为了在Java环境中运行Python代码,我们可以使用Jython,这是一种Python的Java实现。Jython使得Python代码可以直接被Java虚拟机(JVM)执行,从而实现Java和Python的无缝集成。 2. **Python脚本调用*...

    java调用python脚本

    例如,"Java调用Python脚本"是一个常见的需求,特别是在数据处理、科学计算或机器学习等场景中,Python的强大库可以与Java的稳定性和企业级应用能力相结合。本教程将详细讲解如何在Java程序中调用Python脚本。 首先...

    Java调用Python各个版本的jar包

    如果你需要在Java中调用Python 2.x和3.x的不同版本,可能需要寻找其他解决方案,比如使用JPyLib或其他第三方库。 JPyLib是一个Java与Python互操作的库,它允许Java代码直接调用Python函数,反之亦然。通过JPyLib,...

    java+python实现圣诞节雪花漫天飞舞

    java+python实现圣诞节雪花漫天飞舞java+python实现圣诞节雪花漫天飞舞java+python实现圣诞节雪花漫天飞舞java+python实现圣诞节雪花漫天飞舞这个项目是使用Java和Python编写的一个圣诞节主题的雪花飘舞特效。...

    java调用python的jar包

    java调用python的第三方包,在java工程中直接引用即可,亲测可用

    python转java

    Python 以其简洁的语法和丰富的库资源受到很多开发者的喜爱,而 Java 则因为其跨平台性、稳定性以及在企业级应用中的广泛使用而备受青睐。在某些情况下,开发者可能需要将已有的 Python 代码转换为 Java 代码,以...

    应用Java和Python分别实现堆排序算法

    堆排序:应用Java和Python分别实现堆排序算法; 堆排序:应用Java和Python分别实现堆排序算法; 堆排序:应用Java和Python分别实现堆排序算法; 堆排序:应用Java和Python分别实现堆排序算法; 堆排序:应用Java和...

    java调用python中的自定义函数函数

    这段Java代码首先创建了一个`PythonInterpreter`实例,然后使用`execfile`方法加载了`addition.py`文件。接着,通过`get`方法获取了Python的`add`函数,并使用`__call__`方法调用该函数,传入两个`PyInteger`对象...

    java中调用python的必备jar包

    Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。最有趣的事情是Jython不像CPython或其他任何高级语言,它...

    java与python的区别.pdf

    - Java执行速度通常比Python快,这在处理大量数据和需要高性能的应用场景中是一个优势。 - Python可能因为其解释执行的特性,在执行速度上略逊于Java,但在很多应用中,Python的开发速度和易用性可能更受开发者青睐...

    java_python_socket.zip

    本示例是关于如何使用Java和Python进行Socket通信的演示。 在Java中,Socket类位于`java.net`包下,提供了创建TCP连接的能力。在服务器端,我们需要创建一个ServerSocket监听特定的端口,等待客户端的连接请求。...

    NAT探测 使用stun协议 java和python版本

    Python中虽然没有官方的STUN库,但可以通过第三方库如`python-stun`来实现类似的功能。这个库提供了简单的API接口,可以方便地进行STUN服务器的查询和NAT类型检测。 在实际应用中,NAT探测和STUN协议的使用流程通常...

    C_C++_Java_Python——API

    本资源"**C_C++_Java_Python——API**"很可能包含有关这四种编程语言中的API设计、使用和最佳实践的信息。下面将对C、C++、Java和Python这四种语言的API进行深入探讨。 C语言API: C语言是底层编程的基础,它的API...

Global site tag (gtag.js) - Google Analytics