从TextEdit.toPlainText()读取单独行上的多个整数

2024-10-01 02:25:35 发布

您现在位置:Python中文网/ 问答频道 /正文

在textEdit中,有些数字以换行符分隔,我想使用它们,但这些数字是字符串,我无法将它们转换为整数

显示此错误

ValueError: invalid literal for int() with base 10:' 15\n300\n2000\n'.

如何将TextEdit的此内容用作整数

t = self.TextEdit_numbers.toPlainText()
numbers = int(t)

Tags: 字符串forbase错误with数字整数int
2条回答

我不确定这是否是正确的解决方案

我稍微修改了这个实现,以便与所有连接的客户机Earlier I was unable to deliver the same message to different clients connected to this stream 这个实现不会抛出IllegalStateException

import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

@Controller
public class MySSEController_Working {

    private Set<SseEmitter> sseEmitters = new HashSet<SseEmitter>();
    private int messageCount = 0;

    @RequestMapping("/ssestream")
    public SseEmitter getRealTimeMessageAction(HttpServletRequest request, HttpServletResponse response) throws IOException {

        final SseEmitter sseEmitter = new SseEmitter();

        sseEmitter.onCompletion(() -> {
            synchronized (this.sseEmitters) {
                this.sseEmitters.remove(sseEmitter);
            }
        });

        sseEmitter.onTimeout(()-> {
            sseEmitter.complete();
        });

        // Put context in a map
        sseEmitters.add(sseEmitter);

        return sseEmitter;
    }

    @Scheduled(fixedDelay = 2*1000)
    public void scheduledMsgEmitter() throws IOException
    {
        if(!sseEmitters.isEmpty())
            ++messageCount;
        else 
            System.out.println("No active Emitters ");

        System.out.println("Sent Messages : " + messageCount);

        sseEmitters.forEach(emitter -> {
            if (null != emitter)
                try {
                    System.out.println("Timeout : "+ emitter.getTimeout());
                    emitter.send("MessageCounter : " + messageCount);
                    emitter.complete();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        });
    }
}

{a1}以毫秒为单位:60001是60秒。这是一个会话超时,不受会话活动的影响

需要将超时设置为会话的预期持续时间(以毫秒为单位)。因此,86400000(或更多)是完全合适的

相关问题 更多 >