小编san*_*til的帖子

Java继承问题

在探索scjp问题时,我遇到了这种我觉得奇怪的行为.

我已经声明了两个类Item和Bolt,如下所示:

class Item {
    int cost = 20;

    public int getCost() {
        return cost;
    }
}

class Bolt extends Item {
    int cost = 10;

    public int getCost() {
        return cost;
    }
}
Run Code Online (Sandbox Code Playgroud)

并尝试两次访问成本的价值

public class Test {
    public static void main(String[] args) {
        Item obj = new Bolt();
        System.out.println(obj.cost);
        System.out.println(obj.getCost());
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出是20 10.我无法理解这是怎么发生的.

java inheritance scjp

14
推荐指数
2
解决办法
341
查看次数

java的新手 - 试图理解:checker | =(1 << val)

以下代码将检查字符串中是否有任何重复的字符,但我不理解if子句:

public static boolean isUniqueChars(String str) {
        int checker = 0;
        for (int i = 0; i < str.length(); ++i) {
            int val = str.charAt(i) - 'a';
            if ((checker & (1 << val)) > 0) 
                return false;
            checker |= (1 << val);
        }
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

我试图查找一些引用,我是新移位,所有我理解的是<<左移或右移二进制数.你能解释一下checker | =(1 << val)是如何工作的吗?以及'if'陈述.

java

11
推荐指数
3
解决办法
4497
查看次数

无法在golang中解析此json文件

我正在尝试编写go代码来解析json文件的以下内容:

{
    "peers": [
        {
            "pid": 1,
            "address": "127.0.0.1:17001"
        },
        {
            "pid": 2,
            "address": "127.0.0.1:17002"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我能做的就是编写这段代码:

package main

import (
    "fmt"
    "io/ioutil"
    "encoding/json"
)

type Config struct{
    Pid int
    Address string
}

func main(){
    content, err := ioutil.ReadFile("config.json")
    if err!=nil{
        fmt.Print("Error:",err)
    }
    var conf Config
    err=json.Unmarshal(content, &conf)
    if err!=nil{
        fmt.Print("Error:",err)
    }
    fmt.Println(conf)
}
Run Code Online (Sandbox Code Playgroud)

上面的代码适用于非嵌套的json文件,如下所示:

{
    "pid": 1,
    "address": "127.0.0.1:17001"
}
Run Code Online (Sandbox Code Playgroud)

但即使改变了Config struct这么多次.我无法解析问题开头提到的json文件.有人可以告诉我怎么办?

json go

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

使用Python解析HTML

我需要解析一个网页并从中提取一些值.所以我创建了一个python解析器,如下所示:

from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
    def handle_data(self, data):
        print "Data     :", data

f=open("result.html","r")
s=f.read()
parser = MyHTMLParser()
parser.feed(s)
Run Code Online (Sandbox Code Playgroud)

该程序读取html文件并从中打印数据.

我通过了以下result.html,这里解析器工作正常

<tr class='trmenu1'>
<td>Marks Obtained: </td><td colspan=1>75.67 Out of 100</td>
</tr>
<tr class='trmenu1'>
<td>GATE Score: </td><td colspan=1>911</td>
</tr>
<tr class='trmenu1'>
<td>All India Rank: </td><td colspan=1>34</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

传递上面的html之后输出是:

数据:

数据:获得的标记:
数据:75.67满分100的数据:

数据:

数据:

数据:GATE得分:
数据:911
数据:

数据:

数据:

数据:全印度排名:
数据:34

但解析器应该读取更大的文件,上面提到的代码只是该大文件的一小部分.该文件太大,无法在此处粘贴.所以我将其上传到以下链接:http://www.mediafire.com/?dsgr1gdjvs59c7c 当传递较大的文件时,解析器不读取所有条目,在输出中留下一些空白条目.部分输出如下所示:

数据:Syllabi

数据:

数据:GATE得分

数据:

数据:GATE结果

数据:

观察Gate Score下面的行中的空白条目,该值在之前的输出中为911.

解析器适用于小文件但不适用于大文件为什么会发生这种情况?我使用的是Python 2.7

html python parsing html-parsing

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

编译时未定义的'main'引用

可能重复这个这个,但即使在试图挖掘答案一段时间后,我无法解决这个问题.

在尝试编译以下makefile时,

all:  test

    test:  constants.h Point.h Point.cpp line_t.h line_t.cpp drawing_t.h drawing_t.cpp clipper_t.h clipper_t.cpp main.cpp
        g++ -o test Point.cpp line_t.cpp drawing_t.cpp clipper_t.cpp main.cpp -lglut
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

g ++ -o test Point.cpp line_t.cpp drawing_t.cpp clipper_t.cpp main.cpp -lglut /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu /crt1.o:在函数_start': (.text+0x18): undefined reference tomain'collect2:ld返回1退出状态make:***[test]错误1

我是Makefile的新手.我想,我错过了一些太明显的东西.

c++ linux makefile

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

Void Pointers:如何用作通用类指针?

我有两个cpp类让我们说ClassA和ClassB.我有两个指针,相应地指向那些类,让我们说指针A和指针B. 现在我有一个通用的void*指针,我想根据某些条件指向ClassA或ClassB.在这种情况下获取错误错误C2227:' - > GetPosition'的左边必须指向类/ struct/union /泛型类型是'void*'.

如何避免这种错误?

ClassA { 
   void GetPosition();
}

ClassB { 
   void GetPosition();
}

main() {

   ClassA  *pointerA;
   ClassB  *pointerB;
   void    *generic_pointerAorB;

   pointerA = GetAddrOfClassA();
   pointerB = GetAddrOfClassB()

   generic_pointer = pointerA;

   //********************** error at the code below ******************************
   //error C2227: left of '->GetPosition' must point to class/struct/union/generic type. 
   //type is 'void *'

   generic_pointer->GetPosition(); 

   //*****************************************************************************



}
Run Code Online (Sandbox Code Playgroud)

c++ pointers void-pointers

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

标签 统计

c++ ×2

java ×2

go ×1

html ×1

html-parsing ×1

inheritance ×1

json ×1

linux ×1

makefile ×1

parsing ×1

pointers ×1

python ×1

scjp ×1

void-pointers ×1