小编Dav*_*vid的帖子

在画布中心画圆圈

我刚刚使用Android进入基本绘图.我从一些简单的形状开始,但我遇到了一些问题.我想在画布的中心画一个圆圈.我看了几个例子,但似乎无法使它工作.我想这是因为我真的不明白哪些变量在哪里.

有人可以解释一下在我的屏幕中心绘制圆圈的正确方法.这是我的代码:

public class Circle extends View{

int width = this.getWidth();
int height = this.getHeight();

public Circle(Context context) {
    super(context);
    setFocusable(true);

}
protected void onDraw(Canvas canvas){
    canvas.drawColor(Color.CYAN);
    Paint paint = new Paint();
    paint.setStyle(Paint.Style.FILL);
    //canvas.drawCircle(100, 100, 50, paint);
    canvas.drawCircle(width/2, height/2, 100, paint);

    Display disp = ((WindowManager)this.getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();

    float radius = 0;//Radius caused an error so I initialized this variable

    canvas.drawCircle(disp.getWidth()/2, disp.getHeight()/2, radius, paint);

}
Run Code Online (Sandbox Code Playgroud)

}

android android-layout android-canvas

4
推荐指数
1
解决办法
2万
查看次数

在Python中使用Web解析进行面向对象编程

我正在自学 Python 中的面向对象编程和 Web 解析。我想创建一个可以解析网页的类。我有一个关于我的代码的问题。

我正在尝试使用 Beautifulsoup 下载页面。我创建了一个类和一个函数来下载页面,但页面似乎没有下载。我不知道为什么。如果有人能帮助我解决这个问题,那就太好了。这是代码:

from BeautifulSoup import BeautifulSoup
import urllib2

class parser():

    def __init__(self, url):
                self.url = "http://www.any_url"
                self.contents  = ''
                
        def download_page(self):
            
                page=urllib2.urlopen(self.url)
                soup = BeautifulSoup(page.read())

                page_find=soup.findAll()
                print page_find

if __name__ == '__main__':

    parser.download_page
    
Run Code Online (Sandbox Code Playgroud)

我遇到的另一个问题是缩进。现在,我的函数 download_page 似乎存在于我的构造函数中。我试图将我的函数分开,但由于缩进,我不断收到错误。我基本上只是一直点击“选项卡”,直到全部编译完毕。有人可以解释为什么会发生这种情况吗?真的有问题吗?

我问这个问题是因为每当我研究 python 中的面向对象时,函数通常缩进得更均匀。

python class object beautifulsoup html-parsing

4
推荐指数
1
解决办法
968
查看次数

从列表中按字母顺序排列单个字符串 - Java

我想读一个单词列表.然后我想要对每个单词中的每个字符进行字母顺序排列,以便我有一个完整的单词列表,其中每个字母都按字母顺序排列.例如,如果我想从文本文件中读取"cat""dog""mouse",我将[a,c,t],[d,g,o]和[e,m,o,s, ü].

我在Java中实现它.我想过链接列表或其他一些Collection,但我不确定如何实现这些.我知道这并不像将每个字符串转换为char数组或使用数组列表那么简单.(我已经尝试过了)

有没有人有这样做的建议或例子?

基本上,我只是想用算法来改善.

 public class AnagramSolver1 {

static List<String> inputList = new ArrayList<String>();

public static void main(String[] args) throws IOException {

    List<String> dictionary = new ArrayList<String>();
    BufferedReader in = new BufferedReader(new FileReader("src/dictionary.txt"));
    String line = null;
    Scanner scan = new Scanner(System.in);

    while (null!=(line=in.readLine()))
    {
       dictionary.add(line);
    }
    in.close();

    char[] word;


    for (int i = 0; i < dictionary.size(); i++) {
        word = inputList.get(i).toCharArray();
        System.out.println(word);
    }
Run Code Online (Sandbox Code Playgroud)

java string algorithm char

3
推荐指数
1
解决办法
1412
查看次数

麻烦使对象移动一圈

我是android新手.我正在使用我在youtube上找到的教程.该应用程序在画布上绘制一个球的图片,然后对角移动.我想让球移动一圈.我已经找到了一些关于圆周运动基本数学的信息,但是我在实现它时遇到了麻烦.有人可以看看我的代码并告诉我我做错了什么.谢谢.

这是我的代码:

public class DrawingTheBall extends View {

Bitmap bball; 
int x,y;

public DrawingTheBall(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
    bball = BitmapFactory.decodeResource(getResources(), R.drawable.blueball);
    x = 0;
    y = 0;
}

@Override
public void onDraw(Canvas canvas){
    super.onDraw(canvas);

    Rect ourRect = new Rect();
    ourRect.set(0, 0, canvas.getWidth(), canvas.getHeight()/2);
    float a = 10;
    float b = 10;
    float r = 20;
    double theta = 0;
    theta = Math.toRadians(45);

    Paint blue = new Paint();
    blue.setColor(Color.BLUE);
    blue.setStyle(Paint.Style.FILL);

    canvas.drawRect(ourRect, blue);

    if(x < canvas.getWidth()){
        //x …
Run Code Online (Sandbox Code Playgroud)

java animation android bitmap android-canvas

2
推荐指数
2
解决办法
1万
查看次数

使用Hashmap Java的数组超出界限异常

我正在尝试将一个带有char数组的hashmap作为值,将一个字符串作为键.我正在尝试打印出键和值,但不断获取数组超出范围的异常.我不确定问题是什么.(另外我可能会尝试不正确地打印出地图;我有点像其他帖子一样).有人可以帮我解决这个问题.谢谢你的帮助.这是我的代码:

public class MapExample {

     public static void main(String[] args) {

       Map<String,char[]> mp=new HashMap<String, char[]>();

       char[] words = new char[2];
       words[0] = 'a';
       words[1] = 'b';
       words[2] = 'c';

       mp.put("1", words);
       mp.put("2", words);
       mp.put("3", words);

       Set s=mp.entrySet();
       Iterator it=s.iterator();

        while(it.hasNext())
        {           
            Map.Entry m =(Map.Entry)it.next();
            int key=(Integer)m.getKey();
            String value=(String)m.getValue();

            System.out.println("Key :"+key+"  Value :"+value);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java hashmap

1
推荐指数
2
解决办法
1581
查看次数

从permutations Java创建ArrayList

我希望这不是一个愚蠢的问题,但我从另一篇文章中获取了下面的代码.它只生成一个字符串的所有排列.我想要做的就是修改它,以便所有的排列被添加到一个ArrayList,但我有一些很难找到什么是希望简单明显的解决方案.有人可以快速看一下并解释我做错了什么吗?我只是想取一个字符串的排列并创建一个数组列表,就是这样.

public class UserInput {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter Word: ");
    List<String> inputList = new ArrayList<String>();
    String input = scan.next();
    permutation(input);

            //Error occurs here
    inputList.addAll(permutation(input));

}

public  static void permutation(String str) { 
    permutation("", str);
 }

 private static void permutation(String prefix, String str) {   
    int n = str.length();
    if (n == 0) System.out.println(prefix);
    else {
        for (int i = 0; i < n; i++)
           permutation(prefix + str.charAt(i), str.substring(0, i) + str.substring(i+1, n));
    } …
Run Code Online (Sandbox Code Playgroud)

java arraylist permutation

0
推荐指数
1
解决办法
1144
查看次数

使用方法比较列表

我正在尝试使用一种方法来比较不同的列表.基本上我想将两个不同的列表传递给一个方法,如果一个数组列表的元素包含在另一个使用.contains中,则该方法将返回true或false.现在它只返回真 - 我不知道为什么.我希望它返回虚假.如果有人可以帮我解决这个问题,那就太好了.

public class ArrayListTest {

public static void main(String[] args) {

    List<String> list1 = new ArrayList<String>();
    List<String> list2 = new ArrayList<String>();

    list1.add("cat");
    list1.add("dog");
    list1.add("zebra");
    list1.add("lion");
    list1.add("mouse");

    //Test Values
    //list2.add("cat");
    list2.add("lizard");

    boolean doesitcontain = contains(list1, list2); 
    System.out.println(doesitcontain);


}

public static boolean contains (List<String>list1, List<String>list2){

boolean yesitcontains;

for(int i = 0; i < list1.size(); i++){

    if(list2.contains(list1.get(i))){
        System.out.println("Duplicate: "+list1.get(i));
        yesitcontains = true;
        System.out.println(yesitcontains);
    }else{
        yesitcontains = false;
        System.out.println(yesitcontains);
    }
}
    if (yesitcontains = true){

        return true;

    }else 

        return false;

}

}
Run Code Online (Sandbox Code Playgroud)

java list

0
推荐指数
1
解决办法
197
查看次数

解决索引超出范围的Python

我试图只在一个选择范围内将一个列表的内容添加到另一个列表.我想创建一个包含700多个元素的列表.我想从第34个元素开始获取元素,然后继续抓取每个第11个元素.但我有一个问题,解决索引超出范围问题我知道这个问题是由指向一个不存在的元素引起的.我也知道列表的大小会受到计数的影响.我对python有点缺乏经验,所以在这种情况下我不确定如何防止它.如果有人能帮助我解决这个指数超出范围的问题,这将是很好的.

这是我的代码:

main_list = []

for i in range(705):
    main_list.append(i)

sublist = []

def my_range(start, end, step):
    while start <= end:
        yield start
        start += step

for x in my_range(34, 705, 11):
    sublist.append(main_list[x])

print sublist
Run Code Online (Sandbox Code Playgroud)

python list

0
推荐指数
1
解决办法
111
查看次数